Software engineering

Avatar

By tamashihoshi 4 May 2017 11:31

Champion · 244 comments

Hey everyone,

in the forums there are so many ideas flying around, but it's often unclear what we have agreed on. Probably that's where the wiki comes in, but there are quite a few things which simply aren't really fully agreed on or where I have the feeling that not everyone has looked and nodded at it.
When developing a software, planning the features and the needs of the project is quite important. I'm not sure if it's too late or if it's an overkill, but do you think we should probably write down some SWE subdisciplines?
Like... what the requirements are, what should tuxemon look like, where will tuxemon run on etc... which features might be implemented in the future?
I think this is pretty important because of the campaign system. There are quite a few things like tuxemon, story and techniques and their translations where I think they are too "fixed" in the current tuxemon while they should be only in the main campaign. Of course, we could first implement everything into the tuxemon core and then pull the stuff out... but should we really do it that way? Isn't it better if we work into the direction where we want to end?
What do you think about this?
I've posted this in the "programming" thread, but this is actually important for everything. Back then, Leo did something similar in the art thread...


my pretty inactive DeviantArt Account is here: http://tamashihoshi.deviantart.com/
I'm also pretty inactive on OpenGameArt: http://opengameart.org/users/tamashihoshi

Avatar

By Sanglorian 4 May 2017 13:14

Champion · 422 comments
tamashihoshi wrote

in the forums there are so many ideas flying around, but it's often unclear what we have agreed on. Probably that's where the wiki comes in, but there are quite a few things which simply aren't really fully agreed on or where I have the feeling that not everyone has looked and nodded at it.
When developing a software, planning the features and the needs of the project is quite important. I'm not sure if it's too late or if it's an overkill, but do you think we should probably write down some SWE subdisciplines?
Like... what the requirements are, what should tuxemon look like, where will tuxemon run on etc... which features might be implemented in the future?
I think this is pretty important because of the campaign system. There are quite a few things like tuxemon, story and techniques and their translations where I think they are too "fixed" in the current tuxemon while they should be only in the main campaign. Of course, we could first implement everything into the tuxemon core and then pull the stuff out... but should we really do it that way? Isn't it better if we work into the direction where we want to end?
What do you think about this?
I've posted this in the "programming" thread, but this is actually important for everything. Back then, Leo did something similar in the art thread...

Hi tamashi, thanks for starting this conversation. I feel like I'm going to need more elaboration/more specifics from you to understand where you're coming from.

For example, what things feel too "fixed" in the current Tuxemon game? What is it that makes these things feel fixed in the game engine, rather than part of the main campaign? What stuff would be difficult to pull out?

I tend to think that what is "agreed upon" is whatever people are willing to implement. I'd rather have something decent that actually exists, than something amazing that doesn't exist.

Avatar

By tamashihoshi 4 May 2017 21:37

Champion · 244 comments

Let me make an example of too fixed stuff:
Currently the localization of Tuxemon contains translations for Tuxemon (the "program" itself) and for the main campaign, including it's Tuxemon. This isn't good, if you have a downloadable campaign which, as an example, doesn't feature the tuxemon katchon/samuraibug, why should the description of this tuxemon be included?

I understand the point about "something decent that actually exists, than something amazing that doesn't exist"... but that's kinda what's happening right now. At least it feels to me that way right now....
It's things like big code changes, because of new features which are implemented... Like changing the way dialogue boxes work as an example.

You know... A while ago I have asked myself a question... why are closed source projects are being finished faster? Is it because more people work on it? Is it because they have money?
I do not think that these are the reasons. The big difference is the planning of the project.
At the beginning, you should always ask yourself: Where do I want to go? What do I really want to implement? What should be implemented early, what will be included later?
These things change the way you program. It also changes the complexity of the project. If you have something like an UML model or anything similar, if you have a clear way and clear goals you want to reach, you can work towards it.
The "problem" is (that's a very hard word though), is this forum. While only few people try to realize the implementation of tuxemon, the goals and features keep changing. That's when big code changes happen.

What happens if we implement the tuxemon storage? What happens if we implement the tuxemon trading? Sonner or later another idea comes in. And if you want to add that idea, where do you have to change the code?
I believe we are too dependent on shadowapex and bitcraft... the worst case is: something very horrible happens and they can't work on tuxemon anymore. If someone else came and wanted to join, they couldn't ask them about questions. Yet, there are questions to be answered (unless you are a great programmer probably). So starting from zero is easier than working on the already existing project...

If I'm seeing this too strict or anything, please let me know... and if I sound offending, I'm sorry and I don't want to hurt anyone with this. But I'm asking myself where this project is going right now...

It's probably the sentence "to implement more of tamashihoshi's ideas" which benneti wrote in a different thread which made me thoughtful. I don't feel good with that.. because I don't want to make things more complicated and push the goals away.

Sorry for the wall of text u_u I hope it doesn't sound destructive... Im very glad of what Tuxemon has to offer right now and I believe Tuxemon has a bright future with the community we have ^_^


my pretty inactive DeviantArt Account is here: http://tamashihoshi.deviantart.com/
I'm also pretty inactive on OpenGameArt: http://opengameart.org/users/tamashihoshi

Avatar

By Sanglorian 4 May 2017 23:49

Champion · 422 comments

Hey tamashi,

Looks like there's two points you're making here:

1. Each "component" (item, creature, technique, etc) should be easily able to be added or removed to the engine, instead of scattered across several places. So, for example, all the translations of Sumchon should (eventually) be in Sumchon's single JSON file.

I don't have a strong opinion about this.

2. We need to have an up-to-date document that gives all the necessary details about what we want to see implemented in the game, and priorities, alternative options, etc.

I totally agree! I think this is tremendously important, and it can double as documentation for the game when the game is finally completed. This is what I've tried to do on the Stats page, and I think we should do it for everything.

What other areas of the game should we cover?

Some I thought of are:

* Morphing
* Catching
* Buying and selling items (distribution, price, etc.)
* Random encounter rates
* Money gained and lost from trainers after battles won or lost
* How conditions are marked in the GUI

Avatar

By tamashihoshi 5 May 2017 08:52

Champion · 244 comments

Yup! The way you wrote down my thought is way easier to understand, thanks!

Something to talk about is how music works...
stuff like:
Do we have 1 battle theme that keeps the same for the whole game, or do we switch it the climax at the story?
What kind of music will be there? Trainer battle? Wild battle? Boss battle? Will the bosses have individual soundtracks or not?

Depending on this, the game would be coded differently because of the necessary flexibility of the "music player"

Another question I have in mind is:
On which "platform" will Tuxemon be played at?
I guess its Mac, Windows, Linux and Android... but at some point there was also an "it would be cool if Tuxemon runs on PocketCHIP"

Hmm.. If I find the time, I'll probably go through the forums again and look for unresolved stuff yikes


my pretty inactive DeviantArt Account is here: http://tamashihoshi.deviantart.com/
I'm also pretty inactive on OpenGameArt: http://opengameart.org/users/tamashihoshi

Avatar

By ShadowApex 5 May 2017 19:21

Lead Developer · 368 comments
tamashihoshi wrote

Currently the localization of Tuxemon contains translations for Tuxemon (the "program" itself) and for the main campaign, including it's Tuxemon. This isn't good, if you have a downloadable campaign which, as an example, doesn't feature the tuxemon katchon/samuraibug, why should the description of this tuxemon be included?

In regards to translations, right now the Tuxemon engine will first load all the translations for the main campaign. Then it will look in the user's home directory (on *nix systems under ~/.tuxemon/data) for any other custom campaign translation files or resources. This will let users drop in any other custom campaign that can be played in Tuxemon. Ideally in the future we'll be able to include an in-game way of downloading custom campaigns from a repository of uploaded campaigns. One of the goals of Tuxemon is to be flexible enough to let people build their own monster-catching style games on top of the core engine.

Sanglorian wrote

2. We need to have an up-to-date document that gives all the necessary details about what we want to see implemented in the game, and priorities, alternative options, etc.

I also agree! That was one of my main motivations for starting the monster wiki syncing script. Right now I have been trying to use the information provided on the wiki as a source of truth for monsters, their stats, etc. The wiki also provides discussion pages to talk about tweaks to individual stats, etc.

tamashihoshi wrote

You know... A while ago I have asked myself a question... why are closed source projects are being finished faster? Is it because more people work on it? Is it because they have money?

I think the biggest factor here is time. Tuxemon is a community project developed and maintained by dedicated volunteers. Many of the contributors have full time jobs, families, and other obligations that only allow a certain amount of time to work on and maintain the project. With closed source projects, people are being paid to work on a project for 8+ hours a day. If all the contributors here were able to work on Tuxemon for 8 hours a day, there'd be a huge difference in what we could get done in a short amount of time. One way to overcome this is to have more volunteers actively involved in the project. The Tuxemon community is still growing, and we're getting more and more people who are contributing.

You're right about direction though, and I do think that we should try and treat the Tuxemon wiki as the source of the direction we'd like to take the project. Sanglorian has done an amazing job at condensing all the ideas and proposals that we've discussed here in the forums.

tamashihoshi wrote

I believe we are too dependent on shadowapex and bitcraft... the worst case is: something very horrible happens and they can't work on tuxemon anymore. If someone else came and wanted to join, they couldn't ask them about questions. Yet, there are questions to be answered (unless you are a great programmer probably). So starting from zero is easier than working on the already existing project...

In the rare event of both Bitcraft and I meet an untimely demise, the great thing about Tuxemon being open source is that people can fork it and start their own community around it. Anyone can try and take up the reigns to continue the project with the existing community.


Avatar

By Sanglorian 6 May 2017 00:42

Champion · 422 comments

Hey folks, I took a first crack at this - let me know what you think:

https://wiki.tuxemon.org/index.php?title=Game_Bible

Avatar

By tamashihoshi 8 May 2017 11:48

Champion · 244 comments

@ShadowApex
@Sanglorian
Looking through all stuff again, actually you're right... maybe I was just getting a little nervous because I've got not much time to work on this and felt strange... because someone asked me "how's tuxemon going?" and I wasn't able to give a proper answer. This isn't your fault or anything.
I sometimes forget that we all have not much time for this... regarding that fact, we've done quite a lot already.

About the game bible:
I just realized that most of the stuff was already in the wiki, looking through the bible. Maybe I didn't realize all things we have talked about, because I'm sometimes having a hard time understanding everything (because... well.. it's all in english and my english is anything but perfect or fluent).
I like how the game bible is compact... but I feel bad for the empty main page now yikes


my pretty inactive DeviantArt Account is here: http://tamashihoshi.deviantart.com/
I'm also pretty inactive on OpenGameArt: http://opengameart.org/users/tamashihoshi

Avatar

By Sanglorian 9 May 2017 03:58

Champion · 422 comments
tamashihoshi wrote

@ShadowApex
@Sanglorian
Looking through all stuff again, actually you're right... maybe I was just getting a little nervous because I've got not much time to work on this and felt strange... because someone asked me "how's tuxemon going?" and I wasn't able to give a proper answer. This isn't your fault or anything.
I sometimes forget that we all have not much time for this... regarding that fact, we've done quite a lot already.

I can definitely sympathise! We've made a lot of progress, but it feels like there's a tremendous amount to go as well. And as a non-programmer myself, I'm increasingly feeling like I'm not able to contribute to the remaining tasks.

tamashihoshi wrote

About the game bible:
I just realized that most of the stuff was already in the wiki, looking through the bible. Maybe I didn't realize all things we have talked about, because I'm sometimes having a hard time understanding everything (because... well.. it's all in english and my english is anything but perfect or fluent).
I like how the game bible is compact... but I feel bad for the empty main page now yikes

It was definitely useful to compile it all into the game bible! I think that really helps to show what is the core of the game.

Avatar

By bitcraft 9 May 2017 04:39

Champion · 129 comments
tamashioshi wrote

Currently the localization of Tuxemon contains translations for Tuxemon (the "program" itself) and for the main campaign, including it's Tuxemon. This isn't good, if you have a downloadable campaign which, as an example, doesn't feature the tuxemon katchon/samuraibug, why should the description of this tuxemon be included?

The localization is part of a larger plan to break parts of the program resources into campaigns.  The current situation of it is just a step towards the goal of campaigns, and ShadowApex has done most of that work, knowing that campaigns are in the future.  His work will not be lost, but is is only a step out of many steps to reach a goal.  With finite time, however, we make choices what to do and what not to.

In software, sometimes the best solution is only a partial solution that somewhat works.  Many parts of Tuxemon are like this, because we have finite time to contribute.

tamashioshi wrote

You know... A while ago I have asked myself a question... why are closed source projects are being finished faster? Is it because more people work on it? Is it because they have money?
I do not think that these are the reasons. The big difference is the planning of the project.

It is time, 100%.  Time to plan, time to write, draw, compose, and time to throw it all away and do it again.  I put maybe, 4 hours a week coding and catching up on the forums and the github.  Occasionally, I will spend an afternoon or evening on a feature or bugfix.  That could be 4 hours of my free, personal time that I choose to use to contribute.  I could do anything thing else, but I choose to spend some time doing free work for people I've never personally met.  Consider another project where a developer can spend 40 paid hours a week (and often spending more than that!) doing work on a project.  There is a huge difference.

Also, consider that we can only communicate on forums or websites.  Its a totally different dynamic compared to working in an office next to your coworkers.

tamashioshi wrote

What happens if we implement the tuxemon storage? What happens if we implement the tuxemon trading? Sonner or later another idea comes in. And if you want to add that idea, where do you have to change the code?

Programming code can be reused in different places.  Eventually yes, some code is thrown away, or rewritten, but that is how the world works.  New features are not a wasted effort most of the time.  Open and free communication is best for everyone to find the solution that works for everybody.  That is what the forums and github issues are for.

Sanglorian wrote

Hey folks, I took a first crack at this - let me know what you think

Neat idea!  Personally, I really work will with bullet points and very concise wording.  I often use a bullet point format in the github issues.  So, I do like the format of the Bible!  Great work.


I have a PocketCHIP, and I keep it with me, in my bag.  I've often shown people I know Tuxemon on it, and use it to showcase open source, linux, and of course the great community here.

...If somebody asked me how the project was going I would say "Its great!  We have great artists, a great core team of writers and creative thinkers, and lots of ideas coming in."  Recently, I showcased the project to a friend of mine who is in part of a larger community of "gamers", with a large twitter following, social media presence, and somewhat of a minor celebrity status and he was impressed with it.

Obviously Tuxemon is not "Pokemon Prism" with a completed story, but we are completely original and doing it all from nothing....the Prism folks "forked" Pokemon Crystal, so some of their work is already done (not to discredit them....its a cool project and I know they did a lot of work).....but Tuxemon requires much more, since there is no base of software, artwork, and music/sounds that we can use.

Finally, good planning is not a bad idea, but I think overall, the community has done really good so far.  I can't think of any particular time where somebody contributed a significant amount of time, only to have it wasted because the game changed direction.  In the future, projects like the Bible will be a great resource.