DragonPrime - LoGD Resource Community
Welcome Guest
  • Good morning, Guest.
    Please log in, or register.
  • November 17, 2017, 09:25:17 AM
Home Forums News Downloads Login Register Advanced Search
* * *
DragonPrime Menu
Login
 
 
Resource Pages
Search

Pages: [1] 2 3 4   Go Down
  Print  
Author Topic: LotGD Rewrite (Daenerys) Weekly Updates  (Read 20643 times)
0 Members and 1 Guest are viewing this topic.
austenmc
Militia
**
Offline Offline

Posts: 54



View Profile WWW
« on: October 11, 2015, 10:23:19 PM »

What is Project Daenerys?
A rewrite of the LotGD core code with modern technologies (Hack, Laravel, GraphQL), started by austenmc, targeted at producing a generic (headless) game, that can power a web or mobile experience. See the original set of posts at http://dragonprime.net/index.php?topic=12718.msg106160#msg106160

The code is under development on GitHub: https://github.com/lotgd/core.

Why rewrite the core? Isn't it better to start with what we have?
Originally, I didn't want to rewrite the core and, like I said in my post linked above, I'm still willing to partner with core developers in refactoring the existing codebase, if there's momentum behind real change.

But there doesn't seem to be much momentum for change, nor any developers willing to help. The existing codebase is in a very poor state for doing anything except iteration on the present web experience. Something new is needed if we want to support a more extensible module system (built on GitHub repos) or to support a native mobile client. Preserving existing functionality is lower pri for me personally, and so if I have to go it alone, I'd rather re-write with only the features I need at launch.

You might say, "But austenmc, aren't rewrites considered a Bad Idea?" Yes, in general, rewrites are a poor choice for fixing an old codebase, but not "just because," rather, for very specific reasons:
  • It takes a long time to rewrite all functionality, and new features for existing customers either cannot be added to the codebase while the rewrite is happening or must be written once for the in-production legacy system and once for the future-in-production rewrite.
  • That leads to either to a never-ending rewrite to complete all features or sacrificing features just to ship. Most businesses can't afford to remove features once customers have come to expect them, so they choose the never-ending path, sometimes to devastating effect.
  • You just swap old bugs for new bugs. Rewrites are not a good way to decrease bugs.

Since LotGD is a free product, there's little to no existing development happening, I'm targeting a new set of users (mobile) and I'm not looking for a net decrease in bugs, I don't think a rewrite will be fatal. Plus, the one virtue of a rewrite is that it's generally faster, which is key for my limited free time.

What about all my favorite LotGD features?
Yes, it's true that Daenerys will start with what is basically a LORD clone, and have support for very few, if any, modules. This will probably make the game much less fun than existing servers. I'm ok with that as the mobile experience will create a novelty effect for a while.

Modules can be added over time, starting with the most popular or most requested ones.

Will I be able to convert my existing server?
Perhaps, but initially no. A converter would have to be written and all installed modules would have to be ported. If Daenerys is finished, and there's sufficient interest, I might undertake this task.

How can I help?
Read the README.md and GitHub issues at https://github.com/lotgd/core.

If you help out, you'll be eligible for hero status in one our weekly updates!

Where can I learn more about Daenerys?
Check out https://github.com/lotgd/core.

What will I find in this thread?
Weekly updates from me, with progress reports and goals for the coming week.

Why call it Daenerys?
No good reason, other than I needed a name since "the rewrite" is hard to disambiguate. Of course, Daenerys is Mother of Dragons, which seemed appropriate. Smiley

Why you?
I grew up on LORD, but didn't hear about LotGD until recently, and I need a side project to keep my development skills sharp on backend and iOS. By day, I work for a large Silicon Valley company as an iOS Engineering Manager.
Logged
austenmc
Militia
**
Offline Offline

Posts: 54



View Profile WWW
« Reply #1 on: October 11, 2015, 10:27:01 PM »

Daenerys (LotGD Rewrite) Weekly Update 10/12/2015

Progress
Made progress on the fight system this week. Hard to decide how model and controller should work together here but I think I have a scheme I'm happy with. Scenes will maintain a FightController that handles the computation for each round, returning FightEvents which can be converted into messages with a FightDecorator. Not sure about how to fully test FightController yet as it has so many calls to the RNG.

During the week, I got tired of the fight system, so I took a break to build the weapon and armor shops, which I completed. This required adding a button input type to the forms. Further work would be required to match tabular output format. Perhaps I'll add a tabular button input, but that seemed extreme. These changes are still local on my own box; haven't gotten a chance to commit them yet.

I also registered lot.gd domain for use in this project. It will eventually host the API layer for the mobile app as well as the official Daenerys server.

Next Week's Goals
Finish fight system and master training scene.

Heroes
I'm still alone, so no heroic deeds of others to laud this week. Put up a pull request and be next week's hero!

As always, you can check out the state of the world on github: http://github.com/lotgd/core
Logged
Boris735
Mod God
*****
Offline Offline

Posts: 569


View Profile
« Reply #2 on: October 12, 2015, 01:17:36 AM »

As a very minor point, possible since you don't care too much about backwards compatibility: If you are planning on a similar output system, I would recommend not having a `% colour code.  That gets rid of needless special cases in the output, and avoids potential error cases of that colour code being treated as a %-substitution.  (I've only seen that happen a handful of times, mind you.)
Logged
WorldWizard
Militia
**
Offline Offline

Posts: 9


Fighting the meanest monsters every day.


View Profile
« Reply #3 on: October 16, 2015, 09:07:54 AM »

This project looks very cool! I might try my hand at contributing code, also.
Logged
austenmc
Militia
**
Offline Offline

Posts: 54



View Profile WWW
« Reply #4 on: October 18, 2015, 09:48:18 PM »

Daenerys (LotGD Rewrite) Weekly Update 10/18/2015

Progress
Finished the fight system this week and the master training scene, but I don't have the serialize/deserialize mechanisms working to properly test it.

After finishing the fight system, I got tired and built Census, a small script to catalog the number of users, including daily and monthly actives, on a list of LotGD servers I quickly put together.

http://github.com/lotgd/census

Next Week's Goals
Build serialize/deserialize system to keep Scene state between requests.

Heroes
I'm still alone, so no heroic deeds of others to laud this week. Put up a pull request and be next week's hero!

As always, you can check out the state of the world on github: http://github.com/lotgd/core
Logged
Stephen.Kise
Codemeister
****
Online Online

Posts: 377


So meme'd up.


View Profile
« Reply #5 on: October 19, 2015, 12:13:18 PM »


[...] I got tired and built Census, a small script to catalog the number of users, including daily and monthly actives, on a list of LotGD servers I quickly put together.

http://github.com/lotgd/census

That is very generous of you. Was this meant to be a check for yourself, to see if the community is populated enough to rewrite the entire core? Or was this regarding everyone's hints at their player count?
Logged

Slowly progressing fork with PHP 7 support: https://github.com/stephenKise/Legend-of-the-Green-Dragon
Cheap VPS Hosting (10$ credit!): https://m.do.co/c/acde75b086c5
austenmc
Militia
**
Offline Offline

Posts: 54



View Profile WWW
« Reply #6 on: October 19, 2015, 02:08:16 PM »

Mostly to assess and track the market size of LotGD players. Perhaps it will be helpful in the future to assess success of the rewrite but also to help in targeting modules to support etc.
Logged
austenmc
Militia
**
Offline Offline

Posts: 54



View Profile WWW
« Reply #7 on: October 25, 2015, 05:49:46 PM »

Daenerys (LotGD Rewrite) Weekly Update 10/25/2015

Progress
Built a serialize/deserialize mechanism but didn't finish the unit tests or integration with the rest of the game, so haven't tested it. I got sick for three days this week so that was holding me back.

Also, since I had to fix what was the third bug in the Census script, I decided to refactor it into proper classes, with unit tests to more easily move forward. Almost done with that.

Next Week's Goals
Integrate serialize/deserialize system and test Master training scene. Finish refactor of Census.

Heroes
I'm still alone, so no heroic deeds of others to laud this week. Put up a pull request and be next week's hero!

As always, you can check out the state of the world on github: http://github.com/lotgd/core
Logged
wmza
Militia
**
Offline Offline

Posts: 7


View Profile
« Reply #8 on: October 28, 2015, 12:28:15 AM »

Error when trying to run
Logged
Stephen.Kise
Codemeister
****
Online Online

Posts: 377


So meme'd up.


View Profile
« Reply #9 on: October 28, 2015, 08:51:07 AM »

Error when trying to run

This belongs more in the slack channel, but I have had this too.
Logged

Slowly progressing fork with PHP 7 support: https://github.com/stephenKise/Legend-of-the-Green-Dragon
Cheap VPS Hosting (10$ credit!): https://m.do.co/c/acde75b086c5
austenmc
Militia
**
Offline Offline

Posts: 54



View Profile WWW
« Reply #10 on: October 28, 2015, 08:20:09 PM »

This looks like a corrupted download of phpunit. Try removing it and re-installing. Their server is pretty poor so it doesnt always deliver the right bytes Sad
Logged
Stephen.Kise
Codemeister
****
Online Online

Posts: 377


So meme'd up.


View Profile
« Reply #11 on: October 29, 2015, 03:27:05 AM »

This looks like a corrupted download of phpunit. Try removing it and re-installing. Their server is pretty poor so it doesnt always deliver the right bytes Sad
Well, the same results happen when you list the dependency with composer update. I will try stepping back a few versions this weekend, and provide more in-depth reasoning for this.
Logged

Slowly progressing fork with PHP 7 support: https://github.com/stephenKise/Legend-of-the-Green-Dragon
Cheap VPS Hosting (10$ credit!): https://m.do.co/c/acde75b086c5
austenmc
Militia
**
Offline Offline

Posts: 54



View Profile WWW
« Reply #12 on: October 30, 2015, 02:47:21 PM »

Ok, phpunit 5.0 came out and doesn't seem to be supported with the version of HHVM that the instructions install.

I updated the instructions at https://github.com/lotgd/core to install version 4.8.6. Sorry about this trouble.
Logged
austenmc
Militia
**
Offline Offline

Posts: 54



View Profile WWW
« Reply #13 on: November 01, 2015, 07:28:10 AM »

Daenerys (LotGD Rewrite) Weekly Update 11/1/2015

Progress
This week I went to Swift Summit (http://swiftsummit.com) so I didn't have a lot of time to work on Daenerys. I did begin integrating the serialize/deserialize mechanism into the command line wrapper, for testing.

I also finished the refactor of the Census code and I'm about to push it to production.

Next Week's Goals
Finish integrating serialize/deserialize system and test Master training scene.

Heroes
Stephen.Kise and wma for pointing out that the latest version of phpunit is not working with the hhvm setup we have, and so the installation instructions were broken. This has been fixed. Thanks guys!

As always, you can check out the state of the world on github: http://github.com/lotgd/core
Logged
austenmc
Militia
**
Offline Offline

Posts: 54



View Profile WWW
« Reply #14 on: November 09, 2015, 04:37:37 AM »

Daenerys (LotGD Rewrite) Weekly Update 11/8/2015

Progress
Still haven't finished the serialize/deserialize mechanism. Been a busy week at work. As part of integrating the mechanism with the command line testing version of LotGD, I realized the form system (where you pass parameters to scenes, like the selected item in the armor shop, for example) was too complex---I was always looking up the code whenever I was using it. So I started a refactor to clean it up with some protocols.

Next Week's Goals
Finish integrating serialize/deserialize system and test Master training scene.

Heroes
Stephen.Kise for pointing out another issue with the installation instructions. I went through them carefully and updated them. Thanks Stephen!

As always, you can check out the state of the world on github: http://github.com/lotgd/core
Logged
Pages: [1] 2 3 4   Go Up
  Print  
 
Jump to:  


*
DragonPrime Notices
Play LoGD on Dragonprime

Support Us
No funds raised yet this year
Your help is greatly appreciated!
Recent Topics
DragonPrime LoGD
Who's Online
11 Guests, 1 User
Stephen.Kise
Home Forums News Downloads Login Register Advanced Search