thekabal / tki

The Kabal Invasion - A web based space exploration (4x) game
Other
11 stars 7 forks source link

What are your plans for the codebase? #47

Open urbndecay opened 8 years ago

urbndecay commented 8 years ago

Hey there. Sorry if this isn't the best way to get in touch with people involved in the project. I've used git/svn for years but always stayed away from Github.

So I worked on the BNT code base years ago, and spent several months working with it. I picked up the project again after years of being idle and saw that you have started all the much needed updates to the code base.

I wanted to find out what your plans are with this project so I can know if its best to just fork it, or commit directly to the project.

Are you planning on just updating the code base to modern standards and continue having the game be as is (matching the mechanics of TW2002) or are you looking to enhance the game and adding new functionality and features?

My plans were to continue on the overhaul of the codebase, adding a new theme (bootstrap based) and then either beginning new features and game play, or maybe doing a migration to a PHP based framework, specifically I was thinking CodeIgniter.

If our long term interests don't mash up then I can always fork, but if there is fun stuff to work together on I'd prefer to not deal with forking/pulling until it was needed.

thekabal commented 8 years ago

Hello!

Thanks for asking! (Why have you always stayed away from GitHub?)

Awesome to hear that you worked on the code base, its always nice to work with other devs that are familiar with it. I'd welcome PR's at first for targetted work, and if that works out after a few weeks, we can definitely get you contributing!

I am (as I suspect you can see from my recent commits) extremely dedicated to bring the code up to modern standards, but I also intend some fairly massive changes in game play. Originally the BNT-Advanced codebase (Which was TKI before that) included lots of crazy things, like:

And so forth. Once I get the Adodb->PDO transition done, the next steps look like:

Those are the really major "blockers". Once those are done, I'll be switching gears to re-merging the BNTA/TKI original features like multiple ship classes, spies, etc.

I'm very supportive of adding additional themes to the game, so that sounds fairly awesome. I think it would be easier if we get the template conversion done before that, but I'm not saying no!

As for the framework migration, I suspect you'd be better off trying to accomplish that in a fork. I see a few areas (router, DIC, http requests, security) where a framework would be nice. However, right now, I'd probably choose Symfony, and that wouldn't even begin until all of the major projects above are done. I'm also deeply opposed to huge numbers of dependencies.

That said, I think there is plenty we do both plan to accomplish, so if you can be patient on some of the other items, we should be able to work together on it!

You can also reach me at thekabal @ gmail.com

thekabal commented 8 years ago

Oh yeah, very important questions going forward:

php tools/phpcs.phar --standard=tools/phpcs.xml . --ignore=templates,vendor php tools/phpmd.phar . text tools/phpmd.xml --exclude templates,vendor

I very much welcome you if those are acceptable!!

urbndecay commented 8 years ago

I have no problem with the license. I've been using variations of GPL for like 18 years.

Currently I'm running PHP 5.6.24, Apache 2.4.9, MySQL 5.6.17 on windows because my current Linux dev servers are just too loud. I started the process of adding PHP 7.0.9 last night and should have it setup today. So far the only issues have been with declare(strict_types = 1); and the one strict type function on each page with PHP 5.6.24, so it's pretty manageable.

I've been pretty set on PSR-2 standards for a while now. I've worked with Symfony2 for the last... 18 months or so and the code base is pretty strict with their standards. Pretty sure it is what you guys are using it's just hard to tell with all the 2002 code salted though the code base.

I have no problem with using PHPCS & PHPMD. It should be a good practice for me to get into the habit of doing anyways.

I'm very supportive of adding additional themes to the game, so that sounds fairly awesome. I think it would be easier if we get the template conversion done before that, but I'm not saying no!

What type of template conversion are you planning? Changing the template engine fully, or just an update to the existing template that is in use?

thekabal commented 8 years ago

Sounds great!

The template work is focused on migrating the remaining parts of the game to use the template engine. Right now its a wrapped version of Smarty. In the long term, I'd like to investigate Twig instead, but that is probably years+ off.

Today I started experimenting with Symfony's http / request component. So far, I like what I see. I'm not committing to using it, but it is definitely on my radar.

And yes, we generally try to embrace the PSR standards, with the key deviation being that we use the Allman/BSD ("One true bracket") formatting. I started in Pascal long, long ago, and it matches that style very well, and I'm very friendly to the various *bsd's, which also use similar for their C coding. It is definitely different than most of the PHP community, but it feels more comfortable to me.

Glad to have the interest in the game! I'm hopeful that I can launch a game around October, depending on how busy/crazy things get in real life in the months to come.

urbndecay commented 8 years ago

Symfony is pretty great, I've used it for recreating several projects that needed updates and have loved working with it the last 18ish months. Unfortunately that is the biggest issue with it. You don't really migrate old sites over to Symfony, you re-create them, especially if the code base isn't MVC based.

That's why I was thinking of using CodeIgniter instead. It's a simple fast MVC framework that you can easily use most any template systems or not at all. Migrating pages over to MVC pattern is pretty simple and you can pretty easily continue using non-MVC files within the project, Smarty and templates could be moved over with little work, and all the PDO functionality could be reused (Symfony prefers Doctrine).

Totally not stuff to worry about now, but I'm a planner and like to be thinking a few steps ahead.