#Tiny Town Defense (first port)

427 messages Β· Page 1 of 1 (latest)

light leaf
#

New Port: Tiny Town Defense
Description:
Follow the command of mayor L.T. and defend your tiny town from the hordes of imps.

Addicting gameplay with meta progression and upgrades will make sure you will have a great time!

Instructions:
Claim the game for free on Itch:
https://zefrost.itch.io/tiny-town-defense

Download the linux version of the game and place
"Tiny Town Defense.x86_64" in the gamedata folder.

Controls:
D-pad = Move
B = Jump
L-Stick = Movement/Mouse
Start = Select Option
Select = Pause/Menu

CFW Tests:
[X] AmberELEC
[X] ArkOS
[X] ROCKNIX
[X]MuOS
[] Knulli (optional)

Architecture
[X] Aarch64
[X] Panfrost (Mainline)

Resolution Tests
Test all major resolutions:
[X] 480x320
[X] 640x480
[X] 720x720 (RGB30)
[X] Higher resolutions (e.g., 1280x720)*

ZIP FILE->
https://discordapp.com/channels/1122861252088172575/1332972006039097467/1333200441969872958

itch.io

Addicting bullet shooter

#

@rich bluff if this isnt okay please tell me

#

but look at me. i did it πŸ™‚

#

Tiny Town Defense (first port)

rich bluff
#

<@&1216123318122577972>

fickle hatch
#

@light leaf
I'm not sure where you copied the .sh from but it's way outdated

#

You need to understand what the .sh does

#

Please update your script and structure to match what we use nowadays

light leaf
light leaf
#

Sprout Valley

#

It's in testing

fickle hatch
#

That's from July

light leaf
#

I don't see any flack for her .sh on her post

#

I didn't know

fickle hatch
light leaf
#

Okay, so just delete this then if it's not up to standard

lethal wharf
#

Or modify it

#

It’s okay

light leaf
#

I was just trying to contribute. It runs perfectly on my device

floral quiver
#

Eh this is part of the dev and testing process

lethal wharf
#

This is just the testing process. It’s okay

light leaf
#

I was only able to do this because I knew Jan's port was from the same maker and same engine

#

So I edited what needed to be edited and it worked perfectly for me.

#

But I can't make one from scratch

floral quiver
#

So things have been added since Sprout Valley was posted… and what works for you may not work for all the devices available

#

Hence the updated scripts

light leaf
#

So I guess just delete it. 🫠

floral quiver
#

You don’t have to start from scratch… I usually build my ports from older ports too but you just need to edit your script

light leaf
#

Well what one would work? It's a Godot

floral quiver
#

You will see parts that are similar and parts which are updated to the current standard

light leaf
#

And just edit the zip name and .sh file where they need to go?

#

Like I did with jans?

floral quiver
#

I would say you probably just need to edit the .sh script.

light leaf
#

Well that's what I mean. In the script where it points to the file name "tinytowndefense"

#

Just edit that where it's needed?

#

I'll try it tomorrow. Maybe it'll work

#

Thanks for the encouragement Klops and Frax

obsidian parcel
#

Portmaster (app on your device) receives updates over time and you adapt your script to these changes

light leaf
#

Hahahaha wow

tulip coral
#

the .sh path is wrong -- the download itch.io download is named Tiny Town Defense.x86_64 (without underscores)
also, as per portmaster convention, the .sh shuld be named Tiny Tower Defense (with spaces)

light leaf
#

the download doesnt have underscores

tulip coral
#

i'm not sure i'd bother mapping the mouse? if anything, it should be mapped to left-stick (because single-stick devices have no right stick)
i mapped select to esc, and start to enter, and could play without a mouse

light leaf
tulip coral
light leaf
#

so.... what are you saying?

#

oh

tulip coral
#

so, yeah fix those couple things and relook at your bindings for a mouse-free experience

#

(plus the other tips people provided)

#

but great to see you attempting a port! πŸ™‚

light leaf
#

if someone else can do the .sh i dont mindf at all

#

whats a recent godot i can usde as atemplate?

tulip coral
light leaf
#

this isn 32 bit is it?

tulip coral
#

you can amend that .sh. but delete this part --

# Extract APK and repack assets folder into dudelings.zip
APK_FILE=$(find "gamedata" -type f -name "*.apk" -print -quit)

if [ -n "$APK_FILE" ]; then
  pm_message "Found APK file: $APK_FILE"
  unzip -o "$APK_FILE" -d "apk_unzipped"
  pm_message "APK file unzipped to apk_unzipped"
  cd apk_unzipped/assets
  zip -r "../../gamedata/dudelings.zip" ./* .[^.] .??*
  cd ../../
  pm_message "Repacked assets to dudelings.zip"
  rm ./gamedata/*.apk
  rm -r apk_unzipped
  pm_message "Finished clean up."
fi
tulip coral
light leaf
#

ok

#

so this game htough

#

is it 32 bit

#

i have no ides how to tell

tulip coral
#

forget about 32/64-bit for godot -- it's entirely irrelevant here. that's a gamemaker thing (and some other ports)

light leaf
#

its not launching now

tulip coral
#

"$runtime" $GODOT_OPTS --main-pack "gamedata/tinytowndefense.zip"

#

should be
"$runtime" $GODOT_OPTS --main-pack "gamedata/Tiny Town Defense.x86_64"

light leaf
#

still wont launch

tulip coral
#

check the console

light leaf
#

got it

#

fixed

#

updated zip!!!

#

and the mouse IS needed

#

i played it for a good while

tulip coral
#

i'd recommend editing the gptk, then -- mapping the mouse to left stick

light leaf
#

you need it to select buffs, to type in HighScores and some other stuff

tulip coral
#

also -- you might as well map esc to back, and enter to start

light leaf
#

whys it matter? left stick can be used for movement if someome wnats

tulip coral
#

okay ... your call but you're cutting out all single-stick and stickless devices
(for eg, muos can switch d-pad to l-stick and back for sp, etc.)

light leaf
#

look good?

tulip coral
#

i reckon it's an improvement. sometimes, i prefer to go with x for left-click (then a for enter, etc.), but that's me -- a lot of this depends on porter tastes
see what other testers feel

#

at the end of the day, you're the porter, so it's your call

light leaf
#

it works how i like it i guess? haha

#

allyou really do in this game is move left and right

#

jump serves no real purpose except zoning in your spread a bit closer to the target

#

so it shoukld be ready!

light leaf
#

hm?

#

what i gotta add?

tulip coral
light leaf
#

i have no idea what they need to say though

tulip coral
light leaf
#

just copy and past ethem?

tulip coral
rich bluff
#

Documentation is also on the website

tulip coral
#

also, don't forget TinyTownDefense.sh --> Tiny Town Defense.sh

light leaf
#

is this aarch64 or x86_64?

#

i need to space the .sh?

rich bluff
#

Its a runtime, frt

#

And yes, sh needs to be actual title

tulip coral
#

like the example i showed you

        "image": {},
        "rtr": false,
        "exp": false,
        "runtime": "frt_3.5.2.squashfs",
        "reqs": [],
        "arch": []
light leaf
#

readme i do not understand th epackager

tulip coral
light leaf
#

i dont understand how to use the readme generator or what its supposed to contain

obsidian parcel
#

Look at other ports for documentation examples

#

You can even load other port data to give you examples on Portmaster site

light leaf
#

what size is the pmg need to be

#

can someone resize it for me?

nova pilot
#

you can make a screenshot on a device, I make them on muos (power + fn button)

light leaf
#

what size does it need to be

obsidian parcel
#

640x480

light leaf
#

FINAL ZIP

tulip coral
#

metadata files go in root (alongside .sh)

#

delete the log file

#

also, delete frt license (that runtime ships with portmaster -- you're not distributing it)

#

also, delete the conf folder

#

rename tinytowndefense.png to screenshot.png

#

(and correct <image> path in gameinfo.xml)

light leaf
#

wrong sh

tulip coral
#

json is wrong, too

light leaf
#

image path needs to be screenshot.png?

tulip coral
#

also, image looks squashed -- did you just scale a 16:9 image to 4:3?

light leaf
#

i took a print screen of ther game on a 16:9 screen man.

tulip coral
light leaf
#

image path needs to be screenshot.png or tinytowndefense.png

#

it doesnt play that way on my laptop man

light leaf
#

but you said image oath is wrong

#

so what do i put it as

#

screenshot or tinytowndefense

tulip coral
#

<image>./tinytowndefense/tinytowndefense.png</image>

tulip coral
light leaf
#

so in the gameslist.xml i need to change it to screenshot.png

light leaf
#

k not sure what to do about the screenshot

#

is tat one right?

#

ty ty

tulip coral
#

sorry -- use this one (i had to zip it, otherwise discord converts it to webp)

#

(you'll need to get it inside the zip)

light leaf
#

nah it was png

#

check and see though

#

all good?

tulip coral
#

no ... facepalm

light leaf
#

dude wtf

tulip coral
light leaf
#

okay,,, last try or i give up

tulip coral
#

btw, looks like you need more testing? (arkos?)

light leaf
#

youve been so much of a help, Tab. Cant thank you enough

#

bro i just put this up ive only got muos and rocknix to test on

#

so should i delete this post and make a new one

tulip coral
light leaf
#

oh i know that

tulip coral
#

and you can mark off amberelec πŸ‘

light leaf
#

jus trying to get this zip right FIRST

tulip coral
light leaf
#

done!

#

now @ someone with arkos for me please lol

#

im goin' the hell to sleep

#

GD 4 A.M.

tulip coral
#

no need -- someone will test arkos soon enough. it wouldn't warrant another at-navigator ping

light leaf
#

ok ok

tulip coral
#

(i can do arkos, prob later)

light leaf
#

have a great night

#

thank you so so so much Tab

#

you didnt have to do that for me and you took the time to

#

i really appreciate it and wont forget it

tulip coral
light leaf
#

@fickle hatch All Better Now?

tulip coral
#
  • in README.md, amend the following line (because the game is free) Thanks to [ZeFrost](https://itch.io/profile/zefrost) for creating this great game and which you can purchase on [itch.io](https://zefrost.itch.io/tiny-town-defense)
  • in README.md, this'll cause markdown issues: Tiny_Town_Defense.x86_64 -- change to: Tiny\_Town\_Defense.x86\_64
  • change the entire end of your JSON file to this --
        "genres": [
            "action"
        ],
        "image": {},
        "rtr": false,
        "exp": false,
        "runtime": "frt_3.5.2.squashfs",
        "reqs": [],
        "arch": []
    }
}
fickle hatch
light leaf
#

Tab, I'm in bed. If you wanna fix that stuff. Add your name to the porters. I don't mind

#

You deserve it anyways

tulip coral
light leaf
#

Left stick (l/r) was for moving Left and right which is all you can do in this game

tulip coral
light leaf
#

Ok

fickle hatch
ripe sequoia
#

Dude congrats on your first one @light leaf . Honestly I wanted to try to do one but it does look like it's for big brains. I might not be up to the task.

Keep at it and big props to you sir!
I assume the community will support and help guide. So you can iron everything out in good time. No worries.

light leaf
#

I really appreciate the support of everyone. I'm sitting down at the PC to iron out the last few things @tulip coral mentioned. your names been added to JSON

#

This is finalized. changed JSON/MD/ and Controls in MD to match game @fickle hatch

#

DONE

#

just need ArkOS checked out @tulip coral
also 720x720 and 480x320 ... maybe you can help with that @nova pilot πŸ˜„

nova pilot
#

I can see its going to be stretched on 720x720 as it is fullscreen on 480x320 and I doubt its a 3:2 game

livid raft
#

Looks fine on 480x320 (rg351p amberelec)

nova pilot
#

I dont think its going to be that much of a problem and he had enough pain today, so lets not torture him about making a xdelta patch πŸ˜„

nova pilot
#

is it?

#

my bad then, I havnt tried to anything but 3:2

tulip coral
#

(see screenshot)

nova pilot
#

thats actually kinda cool πŸ˜„

#

will work great on that stupid upcoming magicx handheld with vertical screen

#

❀️ We would like to express our gratitude and respect to the MagicX development team, as well as to the community members who love XU MINI M. ❀️

Special thanks To MagicX-M-Sean for sharing development progress and mini28 gameplay with community! ❀️😊

fishku, Ry, snake, shauninman, Gamma, paletochen, and All Retro Handhelds community members! 😊
...

β–Ά Play video
#

in that case its good to be wrapped

#

though actually, when looking at script, it doesnt seem to be up to date

livid raft
#

The game sometimes turns into a slideshow on the RK3326

light leaf
#

Yeah when it gets up around 300,000 points, it even stutters on rk3566. But once you clear the enemies, it's smooth again. I think it's playable.

tulip coral
#

something in my brain keeps saying: why not a screen with the same height but more width?

light leaf
#

Yeah that's such a weird device. Wow

obsidian parcel
#

That thing is only good for vertical shooters and DS games

nova pilot
#

actually community made them do it with constant pressure for a device for ds

#

and they caved in

light leaf
#

So has ArkOS been tested yet

nova pilot
#

yep, I had it running on Arkos

light leaf
#

It runs on your OGA 480x320? @nova pilot

nova pilot
#

yes

light leaf
#

Okay we're all set then!

nova pilot
light leaf
#

K were good them. Besides Knulli

#

I literally took the script from the one @tulip coral sent linked to me

tulip coral
light leaf
#

Wait WHAT? it's the old one now?

tulip coral
light leaf
#

Wtf... okay one sec

#

Laptop is booting

nova pilot
#

btw sample script on the web is missing the Retro Deck bit, I probably need to ask klops if its still needed
if [[ "$PM_CAN_MOUNT" != "N" ]]; then $ESUDO umount "$godot_dir" fi

light leaf
#

@ him and ask

tulip coral
nova pilot
#

so its probably not needed anymore if this one got approved

#

like I said nothing πŸ˜„

obsidian parcel
#

I made a "screenshot" and optimised size with pngquant program (you should learn to do this yourself eventually)

#

I could make something with game logo for the cover too

light leaf
#

delete this rihgt?>

#

Extract APK and repack assets folder into dudelings.zip

APK_FILE=$(find "gamedata" -type f -name "*.apk" -print -quit)

if [ -n "$APK_FILE" ]; then
pm_message "Found APK file: $APK_FILE"
unzip -o "$APK_FILE" -d "apk_unzipped"
pm_message "APK file unzipped to apk_unzipped"
cd apk_unzipped/assets
zip -r "../../gamedata/dudelings.zip" ./* .[^.] .??*
cd ../../
pm_message "Repacked assets to dudelings.zip"
rm ./gamedata/*.apk
rm -r apk_unzipped
pm_message "Finished clean up."
fi

obsidian parcel
#

Cover too?

tulip coral
light leaf
#

is this right one?

tulip coral
light leaf
#

so what needs to be removed

tulip coral
light leaf
#

is that right?

#

it launches the game on my device

#

so i think thats the correct format there

tulip coral
#

looks right to me. either way, it should be fine for p.r -- if there are any minor tweaks required, the p.r reviewers can advise

light leaf
#

okay so HERE is the final zip then

#

changed link on first post too to this one

#

thanks, fellas

obsidian parcel
#

Once ready for PR, you can change tag of this post from "Testing" to "Ready for PR"

light leaf
#

So do that now?

tulip coral
light leaf
#

Woo-hoo!

light leaf
obsidian parcel
#

Now, do you have any idea what to do with Github?

light leaf
#

Suuuuure dont

tulip coral
light leaf
#

This all started as a fun idea to switch out everything from Jan's really old script to just see IF it would work. It did.
That turned into a whole new script, generating json, MD, screenshot.

light leaf
#

Hahaha

#

So what do i do

obsidian parcel
#

Here is a text writeup that might help:

#
  1. Fork the portmaster repo https://github.com/PortsMaster/PortMaster-New
    This will create a personal fork, which you can find in your own repo.

  2. Go to the repo settings, general, and click on Disable actions
    Make a new branch, name it according to your portname

  3. Inside that branch, go to the ports folder
    Click on add files, upload

    Drag your portfolder, with all the port files. Dont forget to add a .gitkeep to empty folders

  4. Fill in the commit changes, name it ''Added portfiles'' for example
    Commit changes

  5. Now its time to double check everything! Structure ok, files ok, screenshot ok etc
    In the top "vitasnake" folder you only need readme, cover, gameinfo.xml, portj.json, screenshot and the .sh
    .
    β”œβ”€β”€ README.md
    β”œβ”€β”€ Vitasnake.sh
    β”œβ”€β”€ cover.png
    β”œβ”€β”€ gameinfo.xml
    β”œβ”€β”€ port.json
    β”œβ”€β”€ screenshot.png
    └── vitasnake
    β”œβ”€β”€ game.apk
    β”œβ”€β”€ gamedata
    β”œβ”€β”€ gmloader
    └── libs

    Click on contribute tab, create PR

  6. Fill in the form

  7. Submit PR
    The autochecker will run

  8. Check for feedback by looking in Pull requests in the original portmaster repo

optimize the png size with PNGquant
remove log file
use new log maker: "$GAMEDIR/log.txt" && exec > >(tee "$GAMEDIR/log.txt") 2>&1
Cover needs to be 640x480

light leaf
#

Ok. So can't do this from my phone it looks like

obsidian parcel
#

You have a PC?

light leaf
#

Of course

#

Just turned it back off though lol

#

I'll do this in a few hours. Thanks for the write up slobs

obsidian parcel
#

I use this thing myself because I forget the steps of it

light leaf
#

It's very handy

tulip coral
#

tinytowerdefense belongs inside ports, otherwise looks good.
(i'm not sure if you can do a drag-move in the github web interface. if not, delete the folder and re-upload into the ports folder)

light leaf
#

I think I did it correctly this time

tulip coral
#

use this feature (from there on it's intuitive) --

light leaf
#

I don't see tinytowndefense in ports folder anymore

tulip coral
#

when you do the pull-request, it'll complain if there are no new files

#

as a i said, looks ready to go

light leaf
#

Did I do it?

tulip coral
#

now you wait on the reviewers to feedback/approve

light leaf
#

Awesome!

#

Aspect I think k is ready too

tulip coral
#

it'll come through in the same p.r if you add it now, because you're not using branches

#

i'd say: wait for approval on tiny town defense, then once that's merged, add the aspect and then do another pull-request

#

when you're more accomplished, you can start looking at branches. keep it simple for now

light leaf
#

@fickle hatch what happened with the pr?

fickle hatch
light leaf
#

I just got an email saying failed

#

Maybe it was from the earlier one

fickle hatch
light leaf
#

Tab said it was all good

fickle hatch
fickle hatch
#

this wont' work

#

this is no free field

fickle hatch
light leaf
#

So what do I need to fix?

fickle hatch
#

it'll say in your PR πŸ™‚

light leaf
#

oh okay. So just remove that from the readme

#

I can do that

#

Thank you

#

Should anything be put into the Notes field?

fickle hatch
#

Unless you have some special notes

light leaf
#

Ok. So I'll just get rid of that whole portion

light leaf
#

@fickle hatch so do not include the controls under notes in the .md either?

fickle hatch
#

Has its own section

fickle hatch
light leaf
#

what si the delimitter im missing

#

i dont know what that means

#

and with tab returns name, i need to fix it to just say tabreturn, not TabReturn?

#

at

#

i did th eoull request and then saw afterwards the delmittier and tabreturn spelling issue so il do it again \

#

but i need to know what i need to fix with the delimitter

#

not sure what that means i need to add/delete to the json

#

if you could assist me id really appreciate it

fickle hatch
#

put the content of the json fiel in there

#

it'll tell you where the error is

#

in what line exactly

light leaf
#

i dragged it into it but i dont know what im looking for

fickle hatch
#

do you know what a delimter is?

#

, for example

light leaf
#

i sure dont

#

thats why im asking

fickle hatch
#

sentence,
wants,
delimter,
at end

#

sometimes its also ;

light leaf
#

so i need to add a comma at the end of what sentence

fickle hatch
#

put it into jsonlint

#

it'll tell you exactly what line and character

light leaf
#

ok

fickle hatch
#

I'm not telling you to the result so you learn to do it

light leaf
#

its there

fickle hatch
#

I don't mean harm πŸ˜„

light leaf
#

i know you dont

#

youre just trying to teach me in good faith

#

and i appreciate it

#

what line

#

13?

fickle hatch
light leaf
#

after the wrod thing"?

fickle hatch
#

the content of the .json file

light leaf
#

i did

fickle hatch
#

what does it say?

light leaf
#

it just shows the contents of the json

fickle hatch
#

It'll even mark it for you

#

no

#

you press validate json

light leaf
#

oooh

#

after my namer

#

add a comma a the end after the quptations?

fickle hatch
#

read it

#
Invalid JSON!
Error: Parse error on line 12:
...eragePaladin"      "TabReturn- held my ...
----------------------^
Expecting 'EOF', '}', ':', ',', ']', got 'STRING'```
#

line 12, expecting End of File ","

#

and tabreturn name is wrong

light leaf
#

pk

#

got it all done

#

here we go

#

after i click contribute then open new pull request

#

is there anything else i have to do

fickle hatch
#

so no need to do it again

light leaf
#

ok so can you check it for me and make sure i did it all right?

light leaf
#

thank you very very much

fickle hatch
#

@light leaf my friend

#

πŸ˜„

#

What did you not understand abouzt "tabreturn- held my hand through the whole thing"

#

is wrong

#

the json and thus the porters name is something that is used by the website and the gui to filter for names and such

#

so the name has to be a real name

#

so case, spelling have to match

#

so it's just tabreturn

light leaf
#

I SWEAR I changed it

#

Maybe I forgot to save. Blah. I'll get it fixed. I'm so sorry

#

I see what you mean now. It has to be JUST the name

#

It's done and uploaded. I'm Hopefuly it'd ready this 5th and final time. Lol

light leaf
#

@fickle hatch the gitkeep wa sin the gamedata folder i promise you

#

but i deleted it, made a new text file, renamed it from a .txt file to .gitkeep and it opens to a blank notepad. i think that's correct? but i will try again

fickle hatch
light leaf
#

yeha i just uplosded it and it deleted it

#

its got the .gitkeep in it

#

so i have no idea what im doing wrong here

#

any ideas?

rich bluff
light leaf
#

okay can you send me a link to that download

#

i got it

tulip coral
#

this simple solution is not use a .gitkeep -- just pop a file in there named "place game file here" or somthing

light leaf
#

so i clone the portmaster-new repository then just do everything the same as what i did on browser?

#

Thats much MUCH easier

tulip coral
rich bluff
#

If you plan on doing more ports you shuold be using Desktop sooner or later anyway, but another file with no extension will also work yeah

tulip coral
lethal wharf
#

πŸ‘€

light leaf
#

okay its done

light leaf
#

should be gravy this time

#

after 6 tries my hell

tulip coral
#

tbh, i quite like the "place game file here" approach because it helps the user know where the correct location is

tulip coral
# light leaf after 6 tries my hell

haha, 6 tries isn't actually too bad -- despite having a bunch of ports in the catalogue, i still take 2 or 3 revisions for some of my ports

light leaf
#

well i guess i shouldnt feel TOO bad then πŸ˜‰

tulip coral
#

technically speaking, this is a single file -- so "place game file here" is more appropriate.
also, it's arguably better to remove the file extension (the .txt), as the file contains nothing

#

but, these are minor details, and the reviewers may not mind. sometimes this depends on who is reviewing, haha

light leaf
#

Wow... I just can't even...

#

Lol

#

This is hopefully the last time I had to do it. If it needs changed, of course I will. But I really hope it's just done

fickle hatch
lethal wharf
light leaf
#

Ummm... hooray?! I think!?

tulip coral
#

(btw, i re-tagged this as "finished")

light leaf
#

That's fine! Thanks! I know, I saw it in there and was overwhelmed!

rain spade
#

Congrats @light leaf ! You live up to your name. πŸ™‚ An average paladin would've been stumped by code and computers.