Is a Monster Collecting game possible with the FX?

also spent a bit more time on the dex :yum:
(i think the cracked egg final form isn’t as cool as i want… maybe it makes more sense to keep the egg hat, idk… i was hoping for slowking vibes)
monster_dex

2 Likes

One option for the multiplayer without connecting the devices would make a code for each monster, soo the code should carry the info like:
-Monster type (2 characters)
-Level (2 characters)
-Stats / Moves(10 characters)
-Personality (2 characters)
-Maybe nickname (10 characters)

So the monster code would be 16~26 characters long, also the character could be number or letters if you are thinking about more than 99 monsters.

I also tottally agree that the monsters should be facing front always. Eggs and breeding is much better than capturing, also shops could buy eggs from the player. I also think the loading screens are kinda expected for a game like this, but loading on arduboy is really quick, soo for me a loading before every fight and every area/city it’s okay.

As long as this only has to happen a certain number of times, it’s doable.
If you need NPCs to be able to move arbitrarily to any map then you’re going to have to deviate from how Pokemon actually does things.

Personally I think seeing the back during battle was something Game Freak chose very specifically to improve immersion, and I think it works. Seeing two fronts or two sides feels more like being a spectator rather than the person commanding the creature.

One compromise option would be to see the back when selecting an attack and see the front as part of the attack animation.

However, I’d be open to not having back sprites purely for the sake of there being less work for sprite artists.

Then perhaps it would be better to base the battling more on the Dragon Quest Monsters series?
I’m not sure about the earlier entries but Joker onwards allows the player to select battle strategies.

Though personally I rarely use auto-battle unless it’s a wild battle and I only want monsters to use attacks that don’t drain MP.

I kind of feel that if your game needs an auto-battle feature then you’ve either made it too grindy or battling isn’t as fun as it ought to be. (Which admittedly is a problem Pokemon has.)

I don’t think the LED is a practical way to do battling.
It’s probably fine for short trades, but having to mess around with holding Arduboys against each other every time you pick an attack would get annoying.

If they were auto-battles then I can think of a way to only need to do it once (i.e. to syncrhonise a seed for a PRNG), but I don’t think auto-battles would be very fun for multiplayer.

Personally I almost never nickname Pokemon, so I’m not convinced this is a must-have feature.
It probably wouldn’t be too complicated to manage, but I feel like the code space required for making the naming UI and printing the nicknames (instead of just a species name) could be better spent.

This is a reasonable idea as long as there aren’t too many different personalities.
Though if the ‘AI’ is implemented with probability tables, or decision trees, or could be implemented as part of the VM, then it wouldn’t be as much of an issue.

That’s just basic IV stuff, so it’s pretty trivial.
Though I’d strongly advise handing stats out using a more sophisticated approach than just dishing them out randomly.
E.g. making sure that their sum is at least a certain value, making sure that no stats are below a certain value, or maybe using some kind of unspecified statistical bell-curve (*insert hand-waving here*) or something.

The map would be nice if there’s a fast-travel ability, though a list of place names would also work.

I think if you’re going to not have a map though, you’d have to mention in the plot that the location is uncharted, and the setting would have to be very remote and primitive, or at least be mediaeval. I could buy an argument of “we can’t travel to other towns because the monsters make it too dangerous”, but only if the technology is mediaeval or lower - if you’ve got computers or phones my suspension of disbelief is going to plummet.

As for the Pokedex, I think that’s a must. If there’s no Pokedex/bestiary then there’s no real point in trying to collect monsters because there’s no reward for catching new ones. Firstly, without the Pokedex to describe the creature you lose half of what makes it interesting. The Pokedex text is to Pokemon what David Attenborough is to animals. If the game is only battling then people will just go after the strongest creatures and ignore the rest.

Having held items might potentially complicate the battle engine depending on what range of effects they can have.
As long as they don’t need to do anything that a battle move couldn’t do, they should be fine, because then they can just reuse the instruction set that moves use.

I’m not entirely sold on this idea.

For one thing, I get the impression it would make acquiring creatures a lot slower (particularly if the eggs are hatched by counting footsteps). For another, I get the impression it would mean monsters were harder to come by in general, depending on what ‘find’ equates to. If eggs might be dropped after battle then it’s possibly not too bad, though I’d be concerned about the randomness aspect involved there.

This is probably going to be awkward to do for two reasons:

  • The Arduboy has no RTC, which means you have to count something else (e.g. footsteps).
  • You need to store some kind of value marking when the item was taken.
    • The more items you have the more that’s going to eat into room for save data.
    • There’s a question of where to store it.
      • The FX isn’t good for storing small or frequently-changing values because of the way flash memory works.
      • You could use EEPROM, but there’s only 1KB of that, so it could be awkward if that’s used for anything else.

It’s not out of the question, but making monsters drop items would be considerably easier.

I really don’t like this idea. I get that it’s supposed to make it more challenging, but:

  • It might end up making the game too challenging considering eggs seem harder to come by than merely capturing or taming monsters
  • I feel like it goes against the spirit of Pokemon, so the game would be less like Pokemon and more like some other kind of monster battling game
  • I just don’t like the idea of losing monsters - if you spend lots of time and effort raising and battling them and then one day they’re just gone it feels like that time and effort was wasted
  • Ultimately it’s just encouraging people not to get attached to their monsters, and to treat them as commodities rather than living creatures, which is again against the ethos on which Pokemon was based

Though if you are going to go down the ‘death’ route for the sake of making life more difficult, I think a better way would be for the creatures to reincarnate back at level 1. That way you don’t lose them, you just have to train them up again. It would still give players an incentive to be cautious about which monsters they use, but it wouldn’t be wasting the player’s time and effort quite as much.


I’ve noticed a bit of a pattern in some of these suggestions.
Rather than a ‘proper’ Pokemon game, are you perhaps thinking of something more like a roguelike with monsters?
The permadeath and lack of map seem to be steps down that route.

If you are thinking about going down that route, then perhaps instead of a proper overworld and storyline you’d be better off having a hub with lots of procedurally generated ‘mystery dungeons’ that change each time the player enters?


Personally, where Pokemon is concerned I’ve always been more into the world-building, the collecting and the journey than the actual battling. To me, that’s what makes Pokemon unique. There’s plenty of other games that offer battling monsters, but none with the kind of setting and world-building that Pokemon has.

My strategy for battling is usually to just brute force things since the game itself rarely requires much strategy. It usually works with in-person battles too, unless you’re up against one of those lunatics from Smogon who spend their lives analysing the battle mechanics.

My actual intent for the original was that it would become something more dragon-like.
So it starts off looking sweet and innocent and ends up being rather fierce.


The easiest option is to just encode the data using hexadecimal, which means you’d have twice as many characters as the number of bytes used to store a monster.

Base64 (or variations thereupon) would be a much denser option, meaning fewer characters to deal with, but the code needed for translation would be more expensive.

Loading screens aren’t likely to be needed.

The reason loading screens exist in some games is because the games are copying data from a disc (be it visual or magnetic) into RAM, or doing some kind of heavy processing.

The Arduboy has 2.5KB of RAM, 1KB of which is used for the frame buffer.
Even if you were filling the whole 2.5KB, if you’re only copying data that should only take tens of milliseconds.

If the game were procedurally generating dungeons then perhaps there might be a need for a loading screen if the dungeon generation were particularly intensive, but even then I can’t imagine it taking more than a second or two.

yes, i mostly imagine things similar to: finding and helping an NPC in the wild, then they return to a town as the shopkeeper who was previously missing or something…

yes, i don’t -hate- back sprites, it’s more of… don’t love + less work…
so yeah, whatever makes sense in the end is good imo

i think we have a different interpretation of “auto-battling”

i meant something more like, auto-chess (or, even more close would be Beastrun by sokpop). In these games, there is no option to control the battle; the depth is put into the preparation and planning.

i guess the hope would be that, if the game was designed to make the preparation for a fight more interesting, then it could be fun?.. at a basic level, it’s kind of like pulling your beyblade and seeing who wins. I’ve seen kids spend countless hours trying to strategize and figure out the best beyblade and technique on how to let it rip, and there isn’t even much actual depth in the preparation there.

though, i think for some people it is super important? i wouldn’t be heartbroken personally lol, but i would nickname all of mine if i could haha… i think for some people it really helps with the attachment to the monster pet

this sounds cool! haha

and yeah you are right about the dex here.

yeah this would be fine, i don’t think they need to do too much… honestly they aren’t totally necessary? evolution stones could just evolve a monster if it is above a certain level… other things could be turned into consumables- like exp share could instead be exp potions you gather from defeating enemy monsters.

imo this is fine? in pokemon you would at least have to make a trip back to town and heal up before using a freshly caught monster, and then also level it up from there… imo the real problem would come from getting the hatched monsters up to a use-able level (but, i am thinking exp share / exp potions could become a more core mechanic? and maybe there are just generally more ways of passively gaining exp)

hm… well, if you found 1-2 eggs per “zone” on the ground, this is about what you would expect to catch normally, right? Also, if there were only eggs, then egg trading and buying would also become more core; shops could all sell a small variety of eggs…

Dropping after battle could be nice…

The randomness aspect is actually part of why i want to do this i guess? personally it felt pretty easy to take finding/catching a monster in pokemon for granted… but like, i’m not ‘married’ to eggs over catching lol, i just like em

hm, yeah i was worried this might be a tough one… what if it respawns an item every time you pick up a new item? so there is no need to store data on when it was taken

yeah this is fair, it was a bit of a curve-ball idea :sweat_smile:lol i don’t mind dropping it

the one thing i will say though; is i imagined it would not happen until your monster is level 100+, and there would be plenty of warning and explanation on how the “retirement stone” works, so you can save monsters that mean something to u. (i feel like there are some players who obsess over games like this and will end up with tons of monster at level 100+ and the game gets flat from there, and then, other players who play to level 60-80 or so and then feel left behind and drop the game)

but, yes I’m fine with it being dropped, it would be pretty experimental either way…

ahhh, i probably design some things this way accidentally because i just like roguelikes a lot lol…

i had thought of this, but you had mentioned one of your main interests was the engine for the overworld… and, a cooperatively designed overworld sounds cooler to me than random dungeons anyways :stuck_out_tongue:

this is cool! see, i think personally, i would enjoy playing a roguelike pokemon game, but it would be a lot more fun to work on something with a journey and world that others enjoy and engage with- like this :grin:

ohhh i like that!

That’s not quite so difficult.

That certainly doesn’t sound as fun to me.
It sounds more like watching YouTube videos than playing a game.

It also puts a lot more pressure on the AI code to be decent, and good AI is difficult to make.
It’s even more difficult when you don’t have lots of memory to track the history of the battle, because without that the AI doesn’t ‘learn’, it just repeats the same set of strategies.

I looked it up and it’s quite a new genre, though I have played a Pokemon tower defence game before. That’s a different situation though, because enemies arrive in waves.

I’m amazed those are still going.

Children perhaps. Though I’d be willing to bet they’re spending more time imagining fictional monsters than ‘strategising’.

If so, this is news to me.

If you go down the “we can’t travel because monsters” route though, I feel that’s venturing towards a different tone and a different kind of game.

I’m not opposed to the idea of making something that isn’t really Pokemon, but if the intent is to diverge from Pokemon then it puts a different shade on things, and I think it’s then worth looking at other monster battling games as well.

Basically I think the more things deviate from the Pokemon formula, the less Pokemon should be referred to, since it starts to become ‘not really Pokemon’.

While I admit that would be a lot easier, it’s not quite the same.

In later Pokemon generations they actually gave the Exp Share the same effect as what used to be the Exp All (i.e. all party members get experience), and made it impossible to disable. It’s not an idea I’m particularly fond of, but that would potentially be easier to implement (because it doesn’t involve tracking one particular Pokemon), and could possibly have a menu toggle.

That said, it might be possible to do a proper Exp Share mechanic given some thought.

That depends on a lot of factors.

  • How many healing items you brought with you
  • Whether it went to the PC
  • Whether you intend to use it straight away
  • How far away town is

Passive experience gain is going to be another awkward one to work out.
(I think realistically it would have to be footstep counting again.)

Again, it depends on what you’re doing.
IV hunting in ORAS could easily lead to catching a whole box worth in one sitting.

If you’re only catching Pokemon that you don’t already own then it depends a lot on where you are - forests and caves are much more likely to have 4-5 new creatures, whilst ordinary footpath routes and ocean routes are much less likely to have anything new.

I’d say the average is more like 3-4 new creatures per area, particularly at the start of the game, though I’m basing that on Hoenn, it might vary depending on the region.

In the late game, yes, but early game it can be quite difficult.

Personally I think it would make more sense to incorporate both if possible, and maybe make some creatures egg-specific.

Though the egg mechanic is potentially going to be more difficult to implement.


Thinking about it, I think Spectrobes did a decent job with their fossil mechanic, though I still prefer catching/scouting as a battle mechanic.


But then you could run back and forth between two items and continually collect new items that way…

I think the easiest option would be to make items respawn upon entering the map/area, and then you’d just have to be careful to not put items in easy to reach areas.

Ultimately the problem with anything other than the ‘respawn on entrance’ idea is where to record the fact ‘this map needs a respawn’. If you respawn on entrance, the items are simply generated into RAM at the same time the map ‘loads’.

Why would it get ‘flat’ from there?

Based on how things go in Pokemon, I think it would be the end of the story and running out of things to catch that would be the points at which people lose interest.

Why would they feel ‘left behind’?

Yes, mostly because that’s what I’ve already put in the research for, but I’m probably going to work on that regardless of whether this potential game ends up going down that route.

Perhaps.

The random dungeon approach does have some precedent though - it’s what the original Dragon Quest Monsters games did. (Though being on Game Boy it was in a more limited capacity than what the Mystery Dungeon series did.)


If the intent is to deviate from the standard Pokemon formula then I highly recommend looking at some other monster-battling games including the ones I’ve already mentioned:

If you’re more into roguelikes and mediaeval/sword-and-sorcercy style games then I definitely think you might find DQM to be a better starting point than Pokemon.

Also, you might discover some interesting things. E.g. The original DQM had monsters that followed the player on the overworld (when in dungeons), and DQM Joker had monster battles initiated by touching monsters on the overworld - both things that Pokemon ended up attempting later on in the series. DQM’s monster fusion mechanic is also quite intersting.

i don’t mind doing something else…
i do have this old prototype for simple action combat, if that looks interesting/possible to you…

hmm… yeah, it is even often considered a required rule in nuzlocke challenges…
from my experience it is a very hit-or miss thing with any player; either they care a lot and nickname all of them thoughtfully, or they don’t care at all (or they do silly/vulgar names lol)… i think it can add a lot to the feeling of trading monsters potentially, as well (since it is a social experience).

hm… this is true…
i guess catching is good for a lot of reasons…
it could be cool if you could breed IVs upwards? (based on what i read on reddit, it just pulls a value from a parent? so, instead, some minor mutation could be introduced)

whoa the minigame for the fossils looks so great…
maybe there could be a similar minigame for general catching? (and fossils would be cool to include as well if it fits)

hm… but, what if it stores, say, 32 empty locations, and respawns the oldest one (and replaces it with the new empty location)? To ‘play’ this system, you would have to go in a very large continuous ‘circle’

hmm… so are you saying things get flat before level 100? (or independent of level entirely?) i guess that makes sense

i guess this is mostly from my personal experience, playing pokemon in the back of the school-bus with other kids… though, thinking about it more now, it probably had more to do with their overall interest and dedication to the game, which would have fallen sooner or later… the kids who really loved pokemon never stopped, regardless of the trials in their path :triumph:

well, i guess i would be comfortable with going either way… keeping randomization to dungeons and caves could be an option as well… mystery dungeon is great

this looks super cool with 2+ monsters :astonished: it’s like snake haha

this could work pretty well actually, if the paths are very tight 1x1 corridors… wild monsters could chase or run away like Pac-Man ghosts… i thought about this quite a bit actually now; i think it could be a lot of fun if the overworld updates once every second or so if you aren’t moving (so it could actually feel a bit hectic getting chased by a powerful monster)

i’m not sure i fully understand how this works… but, personally i’m not a fan of “merging” or “combining” monsters (or any other form of ‘grinding up’ any monster… like how you can trade pokemon for candies in Pokemon Go… it feels weirdly wasteful and disrespectful to the digital monsters :rofl:). But i wouldn’t mind having more complex evolution trees, rather than just a straight 1-2-3… i like Tamagotchi and Digimon evolution charts a lot

It’s kind of hard to tell what’s going on without knowing what (if any) buttons are being pressed.

Got to be honest, I’ve never liked these.

Also, if you know there’s a good chance your Pokemon is going to ‘die’ (as per the nuzlocke rules) then there’s no incentive for putting any thought into the naming.

Which wasn’t too terrible, until wondertrading became a thing.
Trying to prevent it is pointless though.
The Scunthorpe problem is probably more difficult than the halting problem. :P

Eh, I still don’t really see ‘the joy’, but that’s probably just me being an antisocial person.

I’m not fundamentally opposed to nicknames, I just think it’s something that belongs on the ‘nice to have’ list.


Whenever I’m making any game (or software of any kind), I tend to:

  1. Make a list of the features I want
  2. Decide how difficult they’re likely to be
  3. Group them into ‘must have’ and ‘nice to have’ (or ‘goals’ and ‘stretch goals’)

Things that are goals/must-haves must be done for the software to be considered complete, and will be completed in an order that makes sense from an implementation point of view (i.e. fundamentals/framework first, other features later).

Things that are stretch goals/nice-to-haves aren’t required and are reserved for after the main features are ready, memory permitting. Sometimes if something is really simple and/or cheap then it can be added during the main phase, but generally the more difficult or more niche something is, the less likely it’ll make the grade.


Mainly for simplicity reasons. Theoretically ‘catch’ is effectively just another attack, but one with a special effect.

(Hrm, now there’s an idea - using attacks to perform captures rather than pokeballs…)

Ah, you don’t know about IVs? Here’s a brief crash-course…

IV means ‘individual value’, and is a fan term invented by reverse-engineers, not an official term.
They’re basically ‘Pokemon DNA’. There’s one per stat and they range from 0-31.
(To the programmers out there: yes, this means they’re encoded in 5 bits.)

They’re factored into stat calculation (more details here - if you need that ugly equation explained, I’m happy to do so).

Other facts:

  • ‘Perfect IVs’ means a pokemon has a value of 31 in all 6 IVs
  • IVs are passed down by the parents during breeding
    • It varies depending on generation and game, but in Gen VI the child inherits 5 of its parents’ combined 12 IVs if one parent is holding a destiny knot (otherwise it’s 3 IVs), leaving the remaining 1(or 3) completely random.
  • They used to be immutable, but Gen VII added ‘bottlecaps’, which can be used to artificially bump IVs up to maximum.

As you can probably infer from above, that’s what actual Pokemon does already. Inherited IVs + random mutation.

It’s quite nice to begin with, but can be a bit tedious later on.

Minigames would probably chew up too much memory on top of the overworld engine, battle engine and scripting engine.

That one is actually surprisingly easy as long as a ‘give player pokemon’ command will fit in the scripting engine.

It’s basically just:

if(playerHasItem(fossil))
{
	playerTakeItem(fossil);
	playerGivePokemon(pokemonDetails);
}

(Or rather, the equivalent in VM code.)

The problem is that you’d have to store both the map id and the item index. If those are 1 byte each then that’s 64 bytes, which doesn’t seem too bad, but there’s only ~1,500 bytes to work with in total, and that has to be shared between all the things in the game - the scripting engine, the player’s team, the opponent’s team, the NPCs on the map, probably the player’s inventory…

It might be an option, but I think it’s something you’d have to decide later on.

Assuming by ‘flat’ you mean ‘boring’ and/or ‘the point at which people lose interest’, it depends on the person. Some might lose interest when their team reaches level 100 if it’s levelling up that motivates them, others might lose interest when they’ve caught a large number of Pokemon.

I think by far the biggest drop off in interest is beating the champion since that’s where the main story ends, and usually nothing in the post-game compares.

You see, it’s not the challenge of the champion that makes the champion so important, it’s the build-up: all the travelling, all the gyms, and the elite four - they are all building up to the champion. The post-game usually has tougher battles, but what it’s almost always lacking is proper build-up.

Usually in the post-game there’s nooks and crannies to explore and battles to have, and that keeps things rolling along for a while, but it becomes stagnant and repetative because there’s no build-up, no progression, and no end-goal - i.e. there’s no story.

ORAS did a much better job of providing an after-story than most of the other games (albeit a flawed one). (And I think HGSS did the best job of providing busy-work and challenges for the player.)

A lot of people lost interest in Pokemon either because it fell out of fashion or they suddenly decided it was too childish for them.

Others lost interest because of the direction the games went in.
(Personally speaking, I gave up after Sun & Moon for a combination of reasons. I still check up on things, but I’ve not bought any games since that one.)

That was my intent - have a single small hub world and auto-generate the dungeons.

But like I say, that would be quite a different game.

It does, but again, added complexity.

I think it would be interesting, but I also think that for this game it would complicate things.

There’s a load of complicated and boring details about how stats and abilities are inherited, but the basic idea is that monsters above level 10 can be fused to produce a new monster with better stats, and that monster can inherit the skillsets of its parents as well as a new skillset based on which species of monster it becomes as a result of that fusion.

The new species is determined based on either a general formula or a few special hard-coded cases (e.g. if you fuse two slimes whose parents were also slimes, you get a king slime (or maybe behemoth slime? it’s been a while)).

(More details than you probably want can be found here.)

I think it depends on the tone of the game.
DQMJ’s monsters are more like actual monsters, whereas Pokemon are more like animals.

In general I’m not a fan, but I do like how it works on DQMJ purely because of how it allows stats to be increased almost indefinitely (to the point a well-fused slime could crush the toughest monster in the game) and skillsets to be customised.

(Not that I’m suggesting to do that on Arduboy, because that’s likely to horribly complicate things.)

It’s doable, but more work.

Linear level-based evolution is easy, because you just store an evolution level and a pointer to the next species, and then it’s a simple if(creature.level >= species.evolutionLevel) evolveCreature(creature, species.evolutionTarget);

Once you start adding extra methods, you either need a tag specifying what the evolution method is (and thus extra logic to check the tag to determine the method, followed by the checks for that method) or to offload evolution checking to the VM.


I’m beginning to wonder if we’re better off discussing game design in a PM, since it seems to be only us (and maybe @blaka ?) discussing it.

Unless others are finding this interesting and want us to keep the discussion public?

Im really interested in this project from a player/artist that like pokemon but dont like some aspects of the recent games. And the possibilty that i could design a monster for the game :smiley:

1 Like

I am reading along … I haven’t got that much to add as I am not a real Pokemon fan but I am interested to see how this (and the Prince of Persia FX remake) pan out.

3 Likes

I’ve also been tailing along here. I haven’t played Pokemon before (except for the card games with my son years ago), and have no feedback for game direction, but I’m certainly interested in following along.

1 Like

This thread is growing to the point of probably needing to encourage a departure from trademarked names you might consider renaming the title of this thread to avoid any unwanted attention.

Hint hint.

Not so subtle hint :slight_smile: We could rename it to:

Does the FX mean ‘game similar to but not pokemon’ is a possibility?

Or just rename the offending word to Ardumon. Oh wait that was taken > Ardumon Mockup Image.

1 Like

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