Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

My Tuxemon game development journey #1546

Open
DavidLiang1129 opened this issue Jan 8, 2023 · 47 comments
Open

My Tuxemon game development journey #1546

DavidLiang1129 opened this issue Jan 8, 2023 · 47 comments
Labels
Campaign Discussion Free form converation on a topic

Comments

@DavidLiang1129
Copy link
Contributor

With the Chinese translation over, I can't wait to develop my own game Tuxemon: Soft Wind/ Clear Water, now I have a few questions: How do I create a map? How to configure random encounters? How do you create NPCS? How do I create a trainer? How to create store events like or Tuxecenter? (I found some content on Tuxepedia, but the link to the forums doesn't work.) Can someone give me a copy of this? Thanks!

@ultidonki
Copy link
Contributor

Hi!

We use Tiled to do everything: https://www.mapeditor.org/ or https://github.com/mapeditor/tiled

If you download Tiled, then you can open .tmx files. If you go into: mods/tuxemon/maps, you will find all the .tmx files for the Xero and Spyder campaigns - the maps beginning 'spyder_' are the spyder maps, everything else is for the Xero campaign.

Tuxemon uses Actions and Conditions to do everything in the game, the documentation for Actions and Conditions are here:
https://tuxemon.readthedocs.io/en/latest/index.html
https://wiki.tuxemon.org/Event_Reference

  • How to configure random encounters?
    In mods/tuxemon/db/encounter, you can see all the .json files for random encounters.
    You can create new .json files or use these ones.
    To change the encounter, use an Action:
    random_encounter default_encounter,100
    This gives a 100% chance to battle a monster from the default_encounter.json file, so a battle will always start
    random_encounter default_encounter,50
    This gives a 50% chance to battle a monster from he default_encounter.json file, so a battle will start 50% of the time. The other 50% of the time, nothing happens.

  • How do you create NPCS?
    See create_npc action - https://wiki.tuxemon.org/Event_Reference#create_npc
    The NPC is created in .json - mods/tuxemon/db/npc/
    There are lots of examples in mods/tuxemon/maps

  • How do I create a trainer?
    Create an NPC .json file in - mods/tuxemon/db/npc/
    To start a battle on the map, use the action start_battle
    ie. start_battle spyder_route2_billie

You can test this without creating a map by using the command-line:
https://wiki.tuxemon.org/Tuxemon_Debug_Console#Start_NPC_Battle

  • How to create store events like or Tuxecenter?
    Open spyder_cotton_scoop.tmx in Tiled, and find the 'create_npc spyder_shopkeeper' event.
    It uses set_inventory to set the items in the shop
    These come from the .json in /mods/tuxemon/db/inventory
    It uses set_economy to set the prices of items in the shop
    These come from the .json in /mods/tuxemon/db/economy

Finally, when the player talks to the shopkeeper, it uses
open_shop spyder_shopkeeper
to open the shop.

I made a game in Tuxemon too - called the Water region mod! You can look at how I made it, it needs to be put inside the /mods/ folder in Tuxemon:
https://git.sr.ht/~ultidonki/tuxemon_water_region_mod

😄

@DavidLiang1129
Copy link
Contributor Author

Hi!

We use Tiled to do everything: https://www.mapeditor.org/ or https://github.com/mapeditor/tiled

If you download Tiled, then you can open .tmx files. If you go into: mods/tuxemon/maps, you will find all the .tmx files for the Xero and Spyder campaigns - the maps beginning 'spyder_' are the spyder maps, everything else is for the Xero campaign.

Tuxemon uses Actions and Conditions to do everything in the game, the documentation for Actions and Conditions are here:
https://tuxemon.readthedocs.io/en/latest/index.html
https://wiki.tuxemon.org/Event_Reference

  • How to configure random encounters?
    In mods/tuxemon/db/encounter, you can see all the .json files for random encounters.
    You can create new .json files or use these ones.
    To change the encounter, use an Action:
    random_encounter default_encounter,100
    This gives a 100% chance to battle a monster from the default_encounter.json file, so a battle will always start
    random_encounter default_encounter,50
    This gives a 50% chance to battle a monster from he default_encounter.json file, so a battle will start 50% of the time. The other 50% of the time, nothing happens.

  • How do you create NPCS?
    See create_npc action - https://wiki.tuxemon.org/Event_Reference#create_npc
    The NPC is created in .json - mods/tuxemon/db/npc/
    There are lots of examples in mods/tuxemon/maps

  • How do I create a trainer?
    Create an NPC .json file in - mods/tuxemon/db/npc/
    To start a battle on the map, use the action start_battle
    ie. start_battle spyder_route2_billie

You can test this without creating a map by using the command-line:
https://wiki.tuxemon.org/Tuxemon_Debug_Console#Start_NPC_Battle

  • How to create store events like or Tuxecenter?
    Open spyder_cotton_scoop.tmx in Tiled, and find the 'create_npc spyder_shopkeeper' event.
    It uses set_inventory to set the items in the shop
    These come from the .json in /mods/tuxemon/db/inventory
    It uses set_economy to set the prices of items in the shop
    These come from the .json in /mods/tuxemon/db/economy

Finally, when the player talks to the shopkeeper, it uses
open_shop spyder_shopkeeper
to open the shop.

I made a game in Tuxemon too - called the Water region mod! You can look at how I made it, it needs to be put inside the /mods/ folder in Tuxemon:
https://git.sr.ht/~ultidonki/tuxemon_water_region_mod

😄

Thanks for your guidance, your game looks fun.

@DavidLiang1129
Copy link
Contributor Author

I now have my first map drawn for my game (although I haven't set up collisions or anything yet) which means that development of my game has officially begun!4-1.PNG

@Sanglorian
Copy link
Collaborator

Congratulations!

@DavidLiang1129
Copy link
Contributor Author

Congratulations!

Thank you for your congratulations!

@JaskRendix
Copy link
Collaborator

JaskRendix commented Feb 15, 2023

Good job, be careful to use core_ tilesets

@DavidLiang1129
Copy link
Contributor Author

Good job, be careful to use core_ tilesets

No problem. I'll take care of it

@DavidLiang1129
Copy link
Contributor Author

Now I have two questions: why does the game quit when I enter the game again with my map after setting the collision? Also how to set up where players (not NPCS) appear on my map, my character always appears in the top left corner now, thanks.

@JaskRendix
Copy link
Collaborator

There are many reasons.
I would suggest to copy and modify an existing map. Just open another map and copy paste the various elements on yours (collisions, etc).

@DavidLiang1129
Copy link
Contributor Author

There are many reasons.
I would suggest to copy and modify an existing map. Just open another map and copy paste the various elements on yours (collisions, etc).

Ok, thank you. So how do I put the character where I want it to be?

@JaskRendix
Copy link
Collaborator

Again, as I said before, you can come up with the solution by copying, studying and deducting as the various elements work.
You can open any map, there will be probably an event called "create npc" or "create something".
By looking at the event you'll recognize the elements below. I'll do a single exception, for example:

create_npc spyder_firefighter,1,5  <--- 1,5 are the coordinates
npc_face spyder_firefighter,right
not npc_exists spyder_firefighter

@DavidLiang1129
Copy link
Contributor Author

Again, as I said before, you can come up with the solution by copying, studying and deducting as the various elements work.
You can open any map, there will be probably an event called "create npc" or "create something".
By looking at the event you'll recognize the elements below. I'll do a single exception, for example:

create_npc spyder_firefighter,1,5  <--- 1,5 are the coordinates
npc_face spyder_firefighter,right
not npc_exists spyder_firefighter

Thank you very much for your patient guidance, however, I'm sorry I didn't make it clear, what I meant was how to move the player to the specified position (set the player's starting position). If you have used RPG MAKER XP, it has a feature that sets the player's starting position (the coordinates where the player will be after starting the game), Does Tiled have the same function? Thank you very much.
5.PNG
6.PNG
7.PNG
8.PNG

@JaskRendix
Copy link
Collaborator

Sure, create an event called "Player Spawn", this will be the starting position of the player.
You can find it in spyder_bedroom (the starting map for Spyder campaign).

@DavidLiang1129
Copy link
Contributor Author

Sure, create an event called "Player Spawn", this will be the starting position of the player.
You can find it in spyder_bedroom (the starting map for Spyder campaign).

Thanks,Now the problem is solved, because I was careless and forgot to put names in some collisions, and now it works fine, and I'm a little excited about it

@DavidLiang1129 DavidLiang1129 changed the title How to develop a game based on Tuxemon? My Tuxemon game development journey Feb 16, 2023
@DavidLiang1129
Copy link
Contributor Author

I added music to my map (by creating an object in the Events layer, setting the type to "event" and setting an attribute "act1", On the right side of it, type "play_music music_home" and create a second property, "cond1". On the right side of it, type "not music_playing music_home" to save the map and enter the game. It played successfully. Next, I want to create an NPC that will say "Hello Tuxemon World" to me! Stay tuned (if there's a problem with this, I might bother you, so let me apologize in advance)

@DavidLiang1129
Copy link
Contributor Author

I optimized my map and added a few events. The event "mom" executed fine, but the event "momtalk" did not execute (nothing happened when I pressed Enter at the specified location). What happened?
1.PNG
2.PNG

@JaskRendix
Copy link
Collaborator

JaskRendix commented Feb 18, 2023

I would suggest
creation:

    <property name="act1" value="create_npc swcw_mom,4,6"/>
    <property name="act2" value="npc_face swcw_mom,right"/>
    <property name="cond1" value="not npc_exists swcw_mom"/>

mom_talk

    <property name="act1" value="dialog XXXX"/>
    <property name="behav1" value="talk swcw_mom"/>

@DavidLiang1129
Copy link
Contributor Author

DavidLiang1129 commented Feb 18, 2023

I would suggest
creation:

    <property name="act1" value="create_npc swxw_mom,4,6"/>
    <property name="act2" value="npc_face swxw_mom,right"/>
    <property name="cond1" value="not npc_exists swxw_mom"/>

mom_talk

    <property name="act1" value="dialog XXXX"/>
    <property name="behav1" value="talk swxw_mom"/>

I'm sorry. I seem to have misunderstood

@ultidonki
Copy link
Contributor

The problem is is player_at 4,7 - the player_at condition doesn't take co-ordinates as parameters, so you have to use is player_at.
Then, the event momtalk needs to be on the 4,7 square. Also, I think you need to hold down the 'Control' (CTRL) key when re-sizing the momtalk event - because the event needs to be exactly on the square:

image
^ So, above: momtalk_bad won't work, because it isn't exactly on the square grid.
momtalk_good will work, because I held down 'Control' while moving the square, so it's exactly on the grid.

By the way, if you use
behav1 | talk swcw_mom
as JaskRendix suggested, instead of

cond1 | is player_at
cond2 | is player_facing up
cond3 | button_pressed K_RETURN

then it will work, even if the event isn't on exactly the right square.
This is better, because you can talk to mom even if she walks around, and is no longer standing at 4,6. 😃

I hope that makes sense! :)

@DavidLiang1129
Copy link
Contributor Author

DavidLiang1129 commented Feb 18, 2023

The problem is is player_at 4,7 - the player_at condition doesn't take co-ordinates as parameters, so you have to use is player_at.
Then, the event momtalk needs to be on the 4,7 square. Also, I think you need to hold down the 'Control' (CTRL) key when re-sizing the momtalk event - because the event needs to be exactly on the square:

image
^ So, above: momtalk_bad won't work, because it isn't exactly on the square grid.
momtalk_good will work, because I held down 'Control' while moving the square, so it's exactly on the grid.

By the way, if you use
behav1 | talk swcw_mom
as JaskRendix suggested, instead of

cond1 | is player_at
cond2 | is player_facing up
cond3 | button_pressed K_RETURN

then it will work, even if the event isn't on exactly the right square.
This is better, because you can talk to mom even if she walks around, and is no longer standing at 4,6. 😃

I hope that makes sense! :)

Thank you very much, but can I fix this bug on Tuxepedia?
Screenshot_2023-02-19-07-54-58-26_a87fd7db6caa850b517aa6fa9d2fcd0e.jpg

@ultidonki
Copy link
Contributor

Thank you very much, but can I fix this bug on Tuxepedia?

Ah, good point - but I don't have access to the wiki. Maybe @Sanglorian will be able to fix it or give you access if they have time. 😃

@DavidLiang1129
Copy link
Contributor Author

DavidLiang1129 commented Feb 28, 2023

Thank you very much, but can I fix this bug on Tuxepedia?

Ah, good point - but I don't have access to the wiki. Maybe @Sanglorian will be able to fix it or give you access if they have time. 😃

Sorry, I had a problem again, I had changed the momtalk event to this and added translations to the en_US and zh_CN po files, but when I tried to talk to mom, the game quit
I have deleted all mo files from the cache directory
1-1.PNG
2-1.PNG
3.PNG
4.PNG

@JaskRendix
Copy link
Collaborator

you need to set the money for the player:
add this set_money player,1234
where 1234 is the amount of money you want to give to the player
you can put also 0 if you want to

@Sanglorian
Copy link
Collaborator

Thanks for flagging me, @JaskRendix

@DavidLiang1129 , if you email me at sanglorian@gmail.com I can set you up with an account on the wiki.

@DavidLiang1129
Copy link
Contributor Author

you need to set the money for the player:
add this set_money player,1234
where 1234 is the amount of money you want to give to the player
you can put also 0 if you want to

Thanks! It's working now, I've added a few other events (more dialogue and an event for the main character to get Tuxemon) to complete the initial bit of the story, next, I'll start exploring how to make this event work only once to make sure the story doesn't get triggered again, I'll ask questions if I have any, have a nice day!

@DavidLiang1129
Copy link
Contributor Author

you need to set the money for the player:
add this set_money player,1234
where 1234 is the amount of money you want to give to the player
you can put also 0 if you want to

Sorry, I didn't figure out how to make this event only execute once. I changed the event so that it would be like this, but it would still execute again. Was my method wrong? Is there any other way? By the way, can I break an event into segments and then use variables to control which segments will be executed? Thank you very much!
捕获-1.PNG

@ultidonki
Copy link
Contributor

Sorry, I didn't figure out how to make this event only execute once. I changed the event so that it would be like this, but it would still execute again.

I think the problem is in 'act4':
It should say:
set_variable get_tuxemon:yes
not variable_set, which is used by Conditions.

(For an Action, an 'act', you use set_variable,
for a Condition, a 'cond', you use variable_set.
It's a bit confusing!)

If it still doesn't work - Can you post what's in the 'cond1' 'cond2' sections - eg. 'not variable_set get_tuxemo...'?
There should only be 1, and it should say:
not variable_set get_tuxemon:yes

By the way, can I break an event into segments and then use variables to control which segments will be executed? Thank you very much!

Currently, you can only use the method you're using - for each event, have a 'cond' for not variable_set ..., and if you want that event to execute, use set_variable ... to turn the variable on. I hope that makes sense! 😄

@DavidLiang1129
Copy link
Contributor Author

Sorry, I didn't figure out how to make this event only execute once. I changed the event so that it would be like this, but it would still execute again.

I think the problem is in 'act4':
It should say:
set_variable get_tuxemon:yes
not variable_set, which is used by Conditions.

(For an Action, an 'act', you use set_variable,
for a Condition, a 'cond', you use variable_set.
It's a bit confusing!)

If it still doesn't work - Can you post what's in the 'cond1' 'cond2' sections - eg. 'not variable_set get_tuxemo...'?
There should only be 1, and it should say:
not variable_set get_tuxemon:yes

By the way, can I break an event into segments and then use variables to control which segments will be executed? Thank you very much!

Currently, you can only use the method you're using - for each event, have a 'cond' for not variable_set ..., and if you want that event to execute, use set_variable ... to turn the variable on. I hope that makes sense! 😄

Thank you very much. I'll try it when I have time.

@DavidLiang1129
Copy link
Contributor Author

Sorry, I didn't figure out how to make this event only execute once. I changed the event so that it would be like this, but it would still execute again.

I think the problem is in 'act4':
It should say:
set_variable get_tuxemon:yes
not variable_set, which is used by Conditions.

(For an Action, an 'act', you use set_variable,
for a Condition, a 'cond', you use variable_set.
It's a bit confusing!)

If it still doesn't work - Can you post what's in the 'cond1' 'cond2' sections - eg. 'not variable_set get_tuxemo...'?
There should only be 1, and it should say:
not variable_set get_tuxemon:yes

By the way, can I break an event into segments and then use variables to control which segments will be executed? Thank you very much!

Currently, you can only use the method you're using - for each event, have a 'cond' for not variable_set ..., and if you want that event to execute, use set_variable ... to turn the variable on. I hope that makes sense! 😄

Thank you very much. I'll try it when I have time.

Thanks, that's helpful! I've refined a few more events, and now that I've finished the initial plot, I'm ready to start drawing my first town.

@ultidonki
Copy link
Contributor

Hooray! Well done! 🥳 🎉

Make sure to backup your files, onto another hard drive or USB memory stick, just in case there's a problem with your PC or project and you need to get them again. You could also put them onto Github. 😄

@DavidLiang1129
Copy link
Contributor Author

The first town drawing is complete! What do you think? Your comments and suggestions are welcome!
map.png

@DavidLiang1129
Copy link
Contributor Author

Hooray! Well done! 🥳 🎉

Make sure to backup your files, onto another hard drive or USB memory stick, just in case there's a problem with your PC or project and you need to get them again. You could also put them onto Github. 😄

Ok, thanks for your advice!

@freshreplicant freshreplicant added Discussion Free form converation on a topic Campaign labels Mar 6, 2023
@ultidonki
Copy link
Contributor

The first town drawing is complete! What do you think? Your comments and suggestions are welcome!

It looks great! Well done! 😄 🏆

@DavidLiang1129
Copy link
Contributor Author

The first town drawing is complete! What do you think? Your comments and suggestions are welcome!

It looks great! Well done! 😄 🏆

Thank you for your appreciation!😃

@DavidLiang1129
Copy link
Contributor Author

Now the first Demo is about to be completed (although it is very short, so far I have only made a road and a town, next I plan to make the town where the protagonist's friends live, and then arrange the first Tuxemon battle between the protagonist and his friends there, and then the Demo is over) now please ask how I can package this content into a mod? Thank you very much.

@ultidonki
Copy link
Contributor

how I can package this content into a mod?

Ah, we don't actually have a way to create or distribute mods at the moment.

The quickest way, for small projects, is to just share the maps you've created, in mods/tuxemon/maps. Plus the base.po file in mods/tuxemon/l18n....(etc) if you've added dialogue in there.

But once it starts to get bigger, you might want to separate it into a different folder:
So, you have /mods/my_mod/ , /mods/my_mod/l18n/...(etc)/base.po , /mods/my_mod/maps/...
To run the mod, use the -m command line switch, ie:
python3 run_tuxemon.py -m my_mod
That should work, but I haven't tried it recently... It might just show the Spyder/Xero campaign chooser? So I'm not sure if it still loads the mod. But, that's how I used to use it...

I hope that makes sense. 😃

@JaskRendix
Copy link
Collaborator

JaskRendix commented Mar 18, 2023

throw your maps inside maps, eventually we are going to create specific subfolders

There is the map debug.tmx
add a new event with these parameters:

    <property name="act1" value="change_bg choice_gender"/> ---> if you want gender choice if not remove this and the following
    <property name="act2" value="translated_dialog_choice gender_female:gender_male,gender_choice"/>
    <property name="act3" value="change_bg spyder_empty"/> --> leave it
    <property name="act4" value="transition_teleport YOURSTARTINGMAP.tmx,4,4,0.3"/> 
    <property name="act5" value="set_money player,10000"/> ----> if you want to assign money to the player
    <property name="act6" value="set_variable YOURMOD_starting_money:yes"/>
    <property name="cond1" value="is variable_set scenario_choice:YOURMOD_campaign"/>
    <property name="cond2" value="not variable_set YOURMOD_starting_money:yes"/>
    <property name="cond3" value="not variable_set gender_choice:gender_male"/> -> remove if no gender choice
    <property name="cond4" value="not variable_set gender_choice:gender_female"/> -> remove if no gender choice

edit this

   <properties>
    <property name="act1" value="set_money player,0"/>
    <property name="act2" value="translated_dialog_choice spyder_campaign:xero_campaign,scenario_choice"/>
    <property name="cond1" value="not variable_set scenario_choice:spyder_campaign"/>
    <property name="cond2" value="not variable_set scenario_choice:xero_campaign"/>
   </properties>
  </object>

into

   <properties>
    <property name="act1" value="set_money player,0"/>
    <property name="act2" value="translated_dialog_choice spyder_campaign:xero_campaign:YOURMOD_campaign,scenario_choice"/>
    <property name="cond1" value="not variable_set scenario_choice:spyder_campaign"/>
    <property name="cond2" value="not variable_set scenario_choice:xero_campaign"/>
    <property name="cond3" value="not variable_set scenario_choice:YOURMOD_campaign"/>
   </properties>
  </object>

remember to add inside the PO file (EN), below:

# Default mod names on selection menu
msgid "xero_campaign"
msgstr "Tuxemon: Xero"

msgid "spyder_campaign"
msgstr "Tuxemon: Spyder and the Cathedral"

msgid "YOURMOD_campaign"
msgstr "Tuxemon: Whatever you want"

@ultidonki there is no more hardcoing in the starting, now everything has been defined inside the debug.tmx, so it's more easy to edit. Modders can act only on Tiled without touching anything else. I'm pushing to integrate also add_monster inside the tmx file instead of listing the monster in the JSON eg #1678

Opened a PR regarding subfolder some weeks ago #1660, so we can at least creating the subfolder for each campaign, but until now I got no response.

@DavidLiang1129
Copy link
Contributor Author

how I can package this content into a mod?

Ah, we don't actually have a way to create or distribute mods at the moment.

The quickest way, for small projects, is to just share the maps you've created, in mods/tuxemon/maps. Plus the base.po file in mods/tuxemon/l18n....(etc) if you've added dialogue in there.

But once it starts to get bigger, you might want to separate it into a different folder:
So, you have /mods/my_mod/ , /mods/my_mod/l18n/...(etc)/base.po , /mods/my_mod/maps/...
To run the mod, use the -m command line switch, ie:
python3 run_tuxemon.py -m my_mod
That should work, but I haven't tried it recently... It might just show the Spyder/Xero campaign chooser? So I'm not sure if it still loads the mod. But, that's how I used to use it...

I hope that makes sense. 😃

Thanks a lot, I've been a little busy lately, and I'm going to be busy for the rest of the year, and the game will be on hold for a while, but I'll update my content from time to time

@DavidLiang1129
Copy link
Contributor Author

throw your maps inside maps, eventually we are going to create specific subfolders

There is the map debug.tmx
add a new event with these parameters:

    <property name="act1" value="change_bg choice_gender"/> ---> if you want gender choice if not remove this and the following
    <property name="act2" value="translated_dialog_choice gender_female:gender_male,gender_choice"/>
    <property name="act3" value="change_bg spyder_empty"/> --> leave it
    <property name="act4" value="transition_teleport YOURSTARTINGMAP.tmx,4,4,0.3"/> 
    <property name="act5" value="set_money player,10000"/> ----> if you want to assign money to the player
    <property name="act6" value="set_variable YOURMOD_starting_money:yes"/>
    <property name="cond1" value="is variable_set scenario_choice:YOURMOD_campaign"/>
    <property name="cond2" value="not variable_set YOURMOD_starting_money:yes"/>
    <property name="cond3" value="not variable_set gender_choice:gender_male"/> -> remove if no gender choice
    <property name="cond4" value="not variable_set gender_choice:gender_female"/> -> remove if no gender choice

edit this

   <properties>
    <property name="act1" value="set_money player,0"/>
    <property name="act2" value="translated_dialog_choice spyder_campaign:xero_campaign,scenario_choice"/>
    <property name="cond1" value="not variable_set scenario_choice:spyder_campaign"/>
    <property name="cond2" value="not variable_set scenario_choice:xero_campaign"/>
   </properties>
  </object>

into

   <properties>
    <property name="act1" value="set_money player,0"/>
    <property name="act2" value="translated_dialog_choice spyder_campaign:xero_campaign:YOURMOD_campaign,scenario_choice"/>
    <property name="cond1" value="not variable_set scenario_choice:spyder_campaign"/>
    <property name="cond2" value="not variable_set scenario_choice:xero_campaign"/>
    <property name="cond3" value="not variable_set scenario_choice:YOURMOD_campaign"/>
   </properties>
  </object>

remember to add inside the PO file (EN), below:

# Default mod names on selection menu
msgid "xero_campaign"
msgstr "Tuxemon: Xero"

msgid "spyder_campaign"
msgstr "Tuxemon: Spyder and the Cathedral"

msgid "YOURMOD_campaign"
msgstr "Tuxemon: Whatever you want"

@ultidonki there is no more hardcoing in the starting, now everything has been defined inside the debug.tmx, so it's more easy to edit. Modders can act only on Tiled without touching anything else. I'm pushing to integrate also add_monster inside the tmx file instead of listing the monster in the JSON eg #1678

Opened a PR regarding subfolder some weeks ago #1660, so we can at least creating the subfolder for each campaign, but until now I got no response.

Thanks a lot, I've been a little busy lately, and I'm going to be busy for the rest of the year, and the game will be on hold for a while, but I'll update my content from time to time

@DavidLiang1129
Copy link
Contributor Author

Long time no see, really miss, development is still going on,
I redrew Roufeng town to make it look more natural,
what do you think?
Your comments or suggestions are welcome!
swcw_roufeng_town.png

@ultidonki
Copy link
Contributor

Long time no see, really miss, development is still going on, I redrew Roufeng town to make it look more natural, what do you think? Your comments or suggestions are welcome! !

Cool, looks even nicer now! 😄

@DavidLiang1129
Copy link
Contributor Author

Long time no see, really miss, development is still going on, I redrew Roufeng town to make it look more natural, what do you think? Your comments or suggestions are welcome! !

Cool, looks even nicer now! 😄

Thank you for liking it!

@DavidLiang1129
Copy link
Contributor Author

Sorry, I haven't updated this post or my game for a long time. I drew a second town. What do you think? Your comments and suggestions are welcome
SW_Xinyang_Town.png

@ultidonki
Copy link
Contributor

I drew a second town. What do you think?

Nice! It looks slightly bigger than Roufeng town, and it looks different, so the player won't get lost. It's good! 😃

@DavidLiang1129
Copy link
Contributor Author

I drew a second town. What do you think?

Nice! It looks slightly bigger than Roufeng town, and it looks different, so the player won't get lost. It's good! 😃

Thank you for liking it!

@DavidLiang1129
Copy link
Contributor Author

Long time no see. Due to some problems with the hard disk of my computer, all the data in my computer have been lost, so I have to start the production of my game again, for which I am deeply sorry. I will release the latest progress in a few days.

@HippasusTwo
Copy link
Contributor

In future, you could use a usb or a cloud service program or, y'know, github itself to back up your data.
That's kind of part of what github is for, storing code and game asset progress. Good luck with your game!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Campaign Discussion Free form converation on a topic
Projects
None yet
Development

No branches or pull requests

6 participants