Is a Monster Collecting game possible with the FX?

hm yeah now i remember why i decided the mechanics did not fit this sort of game and dropped the prototype xD it was meant to have similar mechanics to fighting games… i guess standard turn-based combat is best then probably (though i would enjoy a chess-clock for multiplayer battles, “nice-to-have”).

this is a fair opinion! definitely understandable if you do not like nuzlocke runs in the first place- i think a large reason for it is the ‘dramatic’ and dynamic gameplay story it creates (one of my favorite animations based on this, if you care haha: I Attempted my First Pokemon Nuzlocke - YouTube ) uh, but yes, nicknames should probably go under the “nice-to-have” category

this could be cool… maybe some sort of calming or enchanting ability

thank you! haha

ahh this is true, there are already so many essential pieces to this type of game

yeah this probably fits under “nice-to-have” as well… if there are randomized dungeons, then it is redundant anyways

i haven’t really been interested in any games after Gen V… there are usually a few monster designs that are nice, but, something about the first couple generations just feels different… i think the “adventure” of pokemon really benefitted from the low-res minimal graphics; there was a lot more room for imagining the world (kinda like Arduboy :stuck_out_tongue_winking_eye:)

yeah… i guess the two directions would be very different… personally, i would lean towards this smaller hub world with randomized dungeons, but i am most interested in making the monsters, so i don’t mind either way (though i think we should decide for sure lol, as they are such different directions)

true, also, most of them would be off screen a lot of the time (if its ~5 tiles in Y, there is only space for 2 while you are going up or down :sweat_smile:)

hm… how bad would the simplest version of this be? i think if they had even half the brains of Pac-Man ghosts it would really cool (also, maybe they would only ‘activate’ while on screen?)… man, this lands right in the middle of “must-have” and “nice-to-have” for me- it changes things a lot, but, in a very good way, imo (especially with random dungeons)

thinking about it again, some cases of cross-breeding as a version of this could be cool… “nice-to-have”

i guess, technically “nice-to-have” imo, but i can think of a few uses: branching evolution, evolution stones, gendered evolution, trade evolution, evolution at specific map location, evolution based on how much you care for your monster (or how much you don’t)… all together, these potentially add a lot of character and uniqueness to the evolution lines


one last thought: if nothing significant on-screen is updating faster than 1fps or so, it might be fun to design it with e-ink displays in mind? i did see someone use one of these to play Dark and Under… personally i am a fan of these displays as well :kissing:

yee this would be cool! :grin: i had fun pixeling the concepts Pharap posted

:astonished: i quite like some of the mon designs from @Revlis here

1 Like

Honestly, I doubt it’s going to be an issue.

We’re explicitly talking about making something similar that doesn’t infringe on anyone’s IP.

All mentions of trademarked names thus far have been to discuss what the games do and to critique the games and their mechanics, something which doesn’t infringe on the rights of the respective IP holders and doesn’t violate copyright (since we haven’t posted any copyrighted material).

Thus even if they noticed, I doubt they’re going to bother with us because we aren’t a threat, it wouldn’t be profitable, and they probably wouldn’t have much of a case in court anyway.

(Particularly in Nintendo’s case - they have much bigger fish to fry.)

That said, I am trying to stick to referring to ‘monster’ and ‘creature’ in certain circumstances.


Though if you’re still concerned, we could unlist this thread (so it’s only accessible to people who have the link to it or have already participated in it) or turn it into a PM (making it an invite-only affair).

1 Like

I can imagine that would work out alright, but in this case it’s probably not going to

For comparison, the early Paper Mario games had turn-based combat with certain ‘actions’ that could be performed to increase the quality of the attack. (Most notably The Thousand Year Door - my favourite of the series.)

It’s only dramatic if the player interprets it that way though.
You need to actively create the story, ‘the rules’ on their own don’t do that.
(And you don’t necessarily need ‘the rules’ to do that, you could do it with a normal playthrough by just altering your decisions.)

If it weren’t too complicated I’d sugget having ‘gentler’ creatures require calming/befriending and ‘tougher’ creatures requiring a show of force.

It could potentially end up as a large region with random dungeons.

This is the main reason I’m leaning towards random dungeons - it provides a good source of renewable materials without too much grinding and without needing to do any voodoo with the overworld.

Though I was thinking about using random encounters on designated tiles rather than symbol encounters with creatures chasing the player.

I know what you mean…

I’ll discuss my response to this in a PM to avoid speaking too many heathen trademarks aloud.
The people who aren’t interested in the original games probably won’t be missing anything much.
(I’ll include @blaka too because he mentioned having opinions on the gams.)

I think it benefitted from being top-down and tile based, and from having smallish sprites, but not quite so much from the lack of colour.

They would. I think you could perhaps stretch to ‘first party member’, but any beyond that would be a waste.

Either ‘randomly staggers like a drunkard’ or ‘ferociously chases the player without rest or deviation’.
Good AI needs a state machine.

It could perhaps be done by offloading work onto the VM, but this is one of those things I wouldn’t want to attempt until I knew how much space everything else would take. I feel like we have to be guided by the approaches that use the least memory and only deviate if there’s room to do so.

Gah, more game logic.

(At this rate I’m beginning to wonder if it would be possible to implement more or less the whole game in the VM. :P)

You’ve basically just listed all the things Pokemon does.
(Well, not quite all. There’s a few more convoluted ones out there.)

Evolution based on a creature’s level, sex and ‘friendship’ are probably the easier options.
Single-use items could potentially be done with a script, but I worry about it complicating things.
That said, single-use items are probably better from a standpoint of being able to evolve the same creature into different forms using different items.

I think split evolution lines make the creatures more interesting, but not necessarily the method itself.
Complex evolution methods are fun in theory, but can complicate matters if you’re trying to evolve in bulk.

1 frame per second…
Imagine the character making one step per second, and then imagine how big the world is.
I don’t think many people are going to want to be dealing with that.

The people developing the game would need access to some to test on, so that might not be practical.

Hrm… Nope, never heard of it. Who made it? :P

I could send more later if I dig my scanner out.

Specifically this comment:

I like some more than others. Blushberry, Sproutler and Okarda are probably my favourites.

Seeing that old thread reminds me, we definitely need to keep the tribute to @Freezingsnail.

(And that type table demo I made might come in handy.)

1 Like

this could be fun, though i imagine it would soak up memory similar to mini-games?

yes this is true

i like this and i don’t think this would be too complicated? even if it was as simple as - these moves scare gentle creatures into running away but impress tough creatures - or - these moves befriend gentle creatures, but enrage(damage+) tougher monsters (this is a binary system… but, a fuzzy equation could be put in its place to read a spectrum of gentle/tough, depending on how deep we would want it…)

well, which direction would you rather go? or would the engine even need to be different for a large region (so we could start small and move to larger if it makes sense)? i would be happy with either honestly haha

yeah i like this

yes, probably not the lack of color… but, i did want to design a 1-bit monster library anyways… i’m kind of dumb when it comes to copyright and stuff, but i think it would be cool if the monster library for this was creative-commons, or something similar? (it might be anyways just by nature of Arduboy though? or open-source? idk lol) i feel like there are a lot of creative uses for monster designs that are easily readable with just two tones… also, color and additional detail could always be added to fit ports or whatever else; starting with two tones should make them very robust in their versatility (in theory)… i remember what it was like trying to make monster games when i was younger in scratch(dot mit dot edu) and a library of monster designs like this would have been so great i think, and it seems like most of these indie/diy handhelds are meant to appeal to this sort of crowd…
ah… i wrote a lot for this oops… but at least have thought a lot about making ~150 monsters :rofl:

what about drunkard with a tiny ‘heatmap’ around the player to draw them in (or pushes them away)? not sure if this makes sense, but, like this:
00100
01210
12P21
01210
00100

i agree, i was just hoping there might be a light version of it that could work… if not it’s coool, i still like walking through tall grass

what is VM here? (i think either virtual machine or virtual memory? from googling…)

true, it really is splitting that is the interesting part… if there was just one way for splitting more than 2 ways, that would be enough imo (like, single-use evolution stones on eevee)… one thought i have is evolution based on which stat is trained highest?

this is true… i guess i was thinking more like- the player takes a full step every half second, so scrolling would still be read-able from 1fps(e-ink)… but yeah, it’s probably too much headache to worry about
for something extra niche anyways

ohhhh cool! its a very nice game :grin: definitely one of the best on arduboy imo

:sunglasses: :point_right: :point_right:

Frownfish (blobfish?), Quadra, Pyrant, Kribbit, and Blushberry are the ones i really like :yum:

Yeah, it’s probably not going to happen for this game.
I wasn’t so much suggesting it as mentioning it as an interesting thing that has been done before.

We shall see how things go.

If there’s room to get it working, that’s likely how it will be done.

Or, y’know, just a few extra bits.
1 bit → 2 values, 2 bits → 4 values, 3 bits → 8 values, 4 bits → 16 values, …

Nope.

The way it’s done in the original is that each area (town, forest, cave) has 4-6 connections (4 compass directions, 2 for diving up/down) that link it to another area. Theoretically if the connections are pointers you can just keep chaining connections until you run out of memory.

(I think The Elder Scrolls does something similar.)

That’s the idea. Start small and potentially add more maps over time.

Basically what you want to read is this to know why licences are needed in the first place:

Then either of these to know what all the creative commons licences do:

(The former is more concise, the latter is more in-depth.)

(And if you’re wondering why copyright law is very similar in nearly every country, see The Berne Convention.)

Like sequels and spin-offs? :P

In my day we had Flowol
(It’s a bit like a punchline to one of those “We have X at home” memes.)

No need for a map or tinyness when you have ‘Taxicab Distance’.

(Ironically I think Minecraft Wiki’s explanation is better than Wikipedia’s.)

Basically int taxicabDistance = abs(monster.x - player.x) + abs(monster.y - player.y);, and that’s how many squares the monster would have to walk to reach the player.

(See also: Von Neumann Neigbourhood and Moore Neighbourhood.)

Virtual Machine.

Basically I’m going to make the Arduboy pretend to be a different computer and run bytecode that tells it what to do. The idea is that the bytecode can be stored on the FX, thus allowing the Arduboy to be given more instructions than it could fit in its own memory.

To get an idea of what it would be like, refer to my old ShouHon engine:

(Except the data will be stored on the FX, and I’m hoping to make either an assembler or compiler for it.)

It depends on how it’s implemented.

If it’s data-driven (i.e. the bestiary includes bytes that specify the evolution method along with a pointer to the target species) then it’ll be more awkward.

If it can be done through the VM then that opens up a lot more options.

E.g. Perhaps something like:

# Evolution Stone
var target = get_target_species();

if(target == species_x)
	evolve_to(target, species_y);
else if(target == species_j)
	evolve_to(target, species_k);

To be called when a stone is used.
Then you could complicate it with stuff like:

if(target == species_x && get_attack(target) > get_defence(target))
	evolve_to(target, species_y);
if(target == species_x && get_attack(target) < get_defence(target))
	evolve_to(target, species_z);

That’s going to be more awkward than sex-based or stone-based evolution unless the scripting/VM approach is viable.

thank you! tired and going to sleep shortly but i will look through these soon

honestly, yes kind of? it makes me sad to see how Nintendo is stomping out any fan creations… i feel a lot more enjoyment and even some success could be found in trying to do the exact opposite?

i guess what i meant was more of tiny-pathfinding… if the monster was ‘aggressive’ it would try to move to a ‘hotter’ tile (which… there is only 0, 1, and 2 degrees of ‘heat’ here) until they reach the player or are not adjacent to a hotter tile… and timid monsters would seek low-heat tiles, when on a 1 or 2…

ohhh, i guess this is the “how” to my “is this possible with fx?” cool, thank you for explaining :grin:

do u mean like this? :

# Evolution Stone
var target_species = get_species(target);

if(target_species == species_x)
	evolve_to(target, species_y);
else if(target_species == species_j)
	evolve_to(target, species_k);

i feel like i’m misunderstanding how individual monsters’ data vs bestiary data will be stored?

ah yeah i am probably misunderstanding, because i thought this would be more viable :sweat_smile:

I’ll almost certainly need to do this for Prince of Persia. I’ll be vey curious to see how you tackle this.

They’re a profit-driven company, so it’s only natural that they’d want to stop other people using their IP - it’s the nature of the beast.

It’s not just Nintendo that crushes fan games either. Nintendo are only known for it because there’s a disproportionately high amount of people who try to make fan games based on Nintendo IP.

Particularly in Nintendo’s case they’re also concerned about keeping their family-friendly + high-quality image.

That said, I think it’s kind of pointless making a ‘fan game’ anyway. If you can be bothered to spend the time and energy to make an original game engine, original sprites and original story, why would you then go and ‘steal’ Nintendo’s characters instead of just making the extra effort to create your own?

I mean, by that point you’re so close to having your own thing (i.e. that nobody can sue you for) that it’s practically shooting yourself in the foot to then give up on originality and drag in the source material.

If the monster were aggressive, it would just try to move straight for the player, which is what I meant by ‘chases the player without rest or deviation’.

I suppose moving a tile near to but not on top of the player would be doable, but then the player would have to chase the creature into a corner to battle it.

However it’s done, it’s the amount of memory required that’s the concern.

Probably, I was throwing it together off the cuff because I haven’t really decided what the high-level language would look like.

Truthfully the actual bytecode would be more like this:

# Assume 'target' is already on the stack
duplicate
get_species
push species_x
equal
if_zero_jump @fail_1
push species_x
evolve
end_script
@fail_1:
duplicate
get_species
push species_j
equal
if_zero_jump @fail_2
push species_k
evolve
end_script
@fail_2:
end_script

But I tried to throw together something more high-level because I didn’t know if you’d ever dealt with a stack-based language.

Either way, the idea is that the script would be run when you use the item, and the id of the monster it was used on would already be on the stack when the script runs, which then lets you query information about the creature and decide what you want to do.

Each monster in the player’s party and the party that the player is battling against will be kept in RAM and can be modified.

Creatures kept in storage will be stored on the FX chip, in an area that will be overwritten (i.e. when a creature is stored or withdrawn).

Species data will also be stored on the FX chip in the bestiary area, in an area that will not be overwritten.

(Except possibly for a few flags saying whether the player has encountered and captured the creature, to determine whether to show them that bestiary entry or not. Though that data may be kept in a separate area on the FX.)

Species data will contain data that applies to every single instance of the species (e.g. name, description, possibly base stats), but not information relevant to individual instances of that species (e.g. stats, nickname (if any), held item (if any)).

Think about how much information you need to make each decision, and how many comparisons you’d have to do.

To figure out the highest stat, you need to know every stat and compare each of them.

Figuring out if a creature is a particular level is a single piece of information (the level) and a single comparison (is level higher than specific value).

Figuring out if a creature is a particular sex is a single piece of information (the sex) and a single comparison.

Stones could be implemented several different ways.

But like I say, if determining whether a creature can evolve and what it would become is handled by a VM script then suddenly there are a lot more options.


What I’ll be doing is probably going to be quite different to what you’ll need to do depending on what sorts of things you’re planning to do with it.

Though the core instructions are likely to be more or less the same on any system.

I opted for stack-based for several reasons.

  • I’m anticipating the need to have people with less programming experience write scripts, hence the talk of making a compiler, and I expect they’ll get on better if they can do a + 5 * 10 than assembly code.
  • Following on from the first point, it’s easier to generate stack-based bytecode because you don’t have to worry about register allocation algorithms, you can make do with the much friendlier shunting-yard algorithm.

If it were just me, I might have attempted something ‘register’ based and tried to write scripts that manually juggle ‘registers’, and in your case that might be the better option depending on what you want to do.

Either way, if you want any info about writing VMs I’ve got a ton of links bookmarked.

What I’ve ended up with is actually inspired by how Bob Nystrom handles local variables with his Lox VM in Crafting Intepreters. Except I’m using pure integers instead of dynamically typed objects (i.e. everything on the stack is an int16_t), and I’m deviating in how function calls are handled - I don’t push the function address onto the stack, I do the more traditional thing - push a return address and the previous stack frame pointer.
(Though I am considering changing what I’ve opted for because it’s made some of the calculations a bit ugly.)

1 Like

eh… Nintendo also crushes disproportionately… they constantly fight the SSBMelee community needlessly and emulation communities… they specifically are quite destructive towards the preservation of old games… i don’t think any of the creatives would actually agree with this type of legal behavior- most of them got into the field via modding and fan creations…

but yes, this is not a battle i want to fight personally :sweat_smile: just my opinion… i am not very interested in making a fan game anyways, i would like more of an ‘ode’ to classic monster collecting games…

hmm… okay tall grass is fine too…

do you plan on having trainers with a ‘line of sight’ to trigger the battle? Perhaps something similar could be done with rustling grass (monster hiding in it, with line of sight to initiate)?

okay this makes sense, thank you for the explanation

In proportion to what? Other console-producing companies?

From their point of view, and the point of view of the law, they still own the code and assets, so it doesn’t matter if nobody else has a copy. In fact they’re well within their rights to destroy every copy they actually have, leaving only what’s been sold.

Likewise, legally it’s the people who publish ROMs and bypass copy protection that are in the wrong.

If you think that’s wrong then it’s not Nintendo you should be complaining about, it’s the law you should be trying to change.

(Or as Tom Scott puts it “YouTube’s Copyright System Isn’t Broken. The World’s Is.”.)

Some newer game developers perhaps, but not the ‘old guard’ who actually run Nintendo. They built their own stuff from scratch.

I think you’d have a hard time convincing people who didn’t piggy back off of other people’s creations that people should be allowed to piggy back off of their creations.

I’m hoping to, but it’s yet another thing in the “we’ll have to see” box.

Individually these things aren’t difficult, but together it’s a lot of juggling.

Possibly. We’ll have to wait and s-
*An audience member throws a tomato*

  • yes, Halo is open for use. flagship game. sets a completely different precedent. i get this is a legal decision by them but that’s half my point.
  • open dev tools for windows and xbox
  • ps vita has open dev tools, as does ps4
  • sonic mania was made by fans who made fan sonic games prior to being hired for the project
  • Nintendo has nothing open and worse emulation than the community because they crush the community instead of trying to include them (also incomplete libraries for emulation)
  • bethesda requires modding their games as part of their application… (not console-producing i guess)

also their action is disproportionate to the threat in reality (at least, in every single case I’ve ever heard, which is a very very long list of mega fans who devoted years to these projects)

yes, its fundamentally one of infinite problems with the government and lawmaking… there is a lot more the small community can do by complaining to Nintendo than they can about the laws that Nintendo’s legal team is abusing

i think my prior list also supports this, as these are all relatively new, largely brought forward because of the voice of the community…

no. they learned by copying other artists, other mathematicians, logicists, computer engineers, etc. etc. etc. (and working within the systems those other people created)

gatekeeping is bad. (for education, progress, and growth)

yeah that’s fair… quite a few things to juggle with a game like this…


i hope i don’t come off as angry or upset here… i do have very strong opinions around the subject but I’m not trying to like fight or start anything :grimacing: it just feels worth saying to me…

[edited down because off-topic, and i annoyed myself]

forest_tiles_01
a… palette cleanser? :sweat_smile:
it is a v1… roughly based on a previous color tileset i was working on…

I have composed a reply to this, but I think it’s getting way off topic.
I could send my response in a PM, but I don’t want it to devolve into a back and forth argument.

I’ll look at doing something with it when I next have chance.

yeah…

forest_tiles_01
small changes because the trees looked weird…

1 Like

If you’re at all interested in using any of my monster designs or names, then feel free to, though I already used some of those monster in a past game I made a couple years back, and I’m (slowly) in the works on a sequel finally.

1 Like

I remember it fairly well.
(Also I helped you fix a bug and organise the code a bit.)

For Arduboy or some other platform?

1 Like

What else than for the Arduboy of course :wink:

Edit: This is what I have so far

4 Likes

thank you! :pleading_face: and cool game!

cool! i really think the Arduboy is perfect for these types of games

1 Like

In that case, at the risk of over-comitting myself, feel free to ask if you want any help at all.

I like the chequerboard idea.

1 Like

I actually did a decent amount of planning for this but it was before the fxchip
Been thinking about picking it back up now that I’m more competent (maybe) lol
I did a lot of deign work to see how crushed I could make the game data, monsters, moves, some computations, tables etc. It’s all in binary arrays somewhere and is basically unreadable.

Most of this can be dumped prob but I haven’t looked into any of the code or techniques the FX chip brought

I’m confident a barebones version of the game was possible on the original hardware as is but the fx chip opens up a lot of possibilities. I’ve been thinking about using packets like how crash streams it’s levels, that way you would only have relevant game data to any area .

this monpal game looks like the techdemo I wanted to make to get feedback on the encounter gameplay lol

1 Like