Ardumon Mockup Image


#41

it took them 2 years.

For me at least the overworld is the least important aspect in a 'mon game. I have a bias from the time playing shoddy and PO though. Nether the less, when you think about it the overworld has 3 main parts; routes, towns, and caves.
just to break that down more in a very course sense,

 towns include:
   shops, npc encounters(gyms), dialog with npcs
routes:
  random encounters on hot tiles, npc encounters
caves:
  random encounters on all tiles, npc encounters, puzzles 

I haven’t played ardventure yet but from what I’ve read about the battle mechanics and monster count some aspect of the game would have to be reduced to fit the more complicated battle mechanics. I feel like splitting the overworld into separate games and using a shared EEPROM file like how @filmote did with loderunner would be the best option vs trying to cram the whole game into 1 hex and make a bunch of compromises on what to include. Even if that ends up being a hassle to have to flash your arduboy. At the same time though old games would require you to swap disks which is pretty equivalent to this

Just as a mental example there could be perhaps 4 files. 1: Starting town and a route. 2: route and a gym. 3: cave/dungeon , final 4. 4: battle tower.
Another potential, File 1, all routes, file 2 all towns, file 3 all caves. Use a flag in EEPROM to determine where you are.

//numbers are the level sequence
routes   towns   caves
  1      2       3
  4      5       6 

Granted this would be more tedious regarding having to flash more often.

Keeping the only 2 area types to a file or just one like the second example would let you save memory by not needing all the different mechanics at all times. Only files with caves would need the puzzle mechanics, only files with towns need a shop mechanic, etc. Another advantage of this kind of layout would be other people being able to create caves as challenges or various other tower of battles ect. Unfortunately my mental gymnastics do not reflect producing anything of substance in reality.

Also as a side note, circuit dude could easily be an easter egg sudo legendary. See: rotom. Using characters from other ardu games as legendaries or NPC opponents would be a nice community spin. (the arduventure character could be the final boss or a secret boss etc)


(Pharap) #42

For what it’s worth, Pokemon may have followed the route/town/cave formula but other Pokemon-like games such as Spectrobes, Dragon Quest Monsters Joker and Yokai Watch bucked the trend.

In DQMJ, monsters roam the overworld and you have to run away as they chase you if you don’t want to battle them.

In Spectrobes monsters aren’t even captured in the wild, they’re all resurrected from fossils and fossils are mined from specific locations in the overworld alongside other items (e.g. stat boosting minerals) while monsters that you battle roam the overworld.

In Yokai watch, you have to go to specific locations to find hidden Yokai, but you scan around for them and then battle them.

So the mechanics could always deviate if another approach uses less memory.


#43

I like the idea of making characters from other Arduboy games NPCs/Monster, depending on whether they’re human/humanoid or monster/machine ( I personally can’t stand human looking monsters in games like pokemon, but that’s just me). If there’s not enough space for random encounters, there can always be a vending machine where you can buy the monsters. I also think if there’s going to be multiple files, they should all be fairly diverse as in not one file is filled with only caves and the other with only routes (edit: I missed the part about the flag). But like you said, Freezingsnail, we don’t necessarily need an open world. It can be just a non-linear or linear map, like Super mario bros 3 and World, or a simple menu can suffice.


(Pharap) #44

I just remembered Yokai Watch also hasa gashapon machine that dispenses Yokai, so a vending machine or a gashapon machine would be good.
After all, Pokeballs were inspired by gashapon capsules.


#45

There could also be a hub world. It can have an area for shopping and buying monster, an area for tornaments and battles with special NPCs and gym leaders or whatever we’d call them, and, if it can fit, a minigame. Also a healing center, of course.


(Pharap) #46

Or instead of a healing centre, monsters could just be healed when they’re put in storage like Pokemon did originally.

The reason Pokemon get healed when they’re put into storage is because the data structure for storage is smaller than the data structure for when they’re in the party.
When they’re withdrawn, their stats are recalculated to fill the rest of the strucutre, including health.


#47

True, but then you’d have to put them in and then take them out, which could be annoying to some. Maybe, if things were to be kept simple, we can just have them heal instantly after battle.


(Pharap) #48

I was thinking of it more as a means of conserving memory.
If the mechanism for storing monsters also heals them then you don’t need to make a separate healing system.

Depends whether it’s needed though.

I would certainly suggest not bothering with a full Pokemon centre and just having the PC handle all the other functions though. It might not be as impressive, but it means it’s easier to pack them into the game and to put them in different locations and it saves memory because you don’t need an entire building.
For example, you can shove a PC right next to a cave entrance instead of needing to set aside an entire area to fit a building just for the sake of being able to heal before entering the cave.


#49

Okay, I see. So having a PC that heals the monster that can also be healed when stored. That’s a really good idea in that case. Should there be types and status effects? I think it may be a bit much to fit all of that in there, and it isn’t really necessary. But if so, I say keep it simple by only having 3 to 5 types that effect the amount of damage caused by a monster based on their type and the opposing monster’s, and of course simple status effects like wounded, poisoned/ill, stunned/paralyzed, and maybe a burned and frozen.


#50

When I read ardumon I think of pokemon, and because of the nature of the hardware I think specifically of gen 1. So to me a clone would need the key elements of a Pokemon game. Otherwise it would be ardurancher or digidumon. Granted some things in gen1 are really archaic and in some cases bad design. I had mixed feelings about hms Being removed and replaced with magically summoned Pokemon to preform the task in sun/mun (and xy if that’s there too, I never played them). But that design would probably be better memory wise than having the hm slave mechanic

My mindset is that by keeping only 1 or two of the area types to a file you could leave out entire mechanics to save space. Overworldpuzzles.h would only need to be included in cave maps while a dialog engine and store system would only need to be included with files with towns. It could also allow for a lot more visual varity for the overworld as each file could be in a region ect and use a different Sprite sheet.

Also I feel like the type of players can be spilt pretty cleanly into 2 groups. People who play the game using whatever they want and then stop after the elite 4, and people who understand ev training and spend ages grooming mons for the battle tower which has a difficulty curve of a straight cliff in compairison to the normal game. I don’t believe dv/ev/iv values/ natures are something that are necessary or should be included however. Billy who’s willing g to spend 300 hours grinding a breader ditto and nature sync Eve and then another 300 hours grinding eggs in order to have a fair chance to win is bad design imo. And also why I preferred playing on shoddy.

Having separate files could facilitate challenge maps like the battle tower where your team composition is more important to win, or there could be restrictions not normally in the game. Or challenge caves using whatever puzzle mechanics are available.
So obviously I’m the type of player that leans towards post game content. But for this type of game that’s something that’s possible and easy to come up with since your team is really whatever you want and you can approach the same battle in so many different ways. in comparison to arduventure where after you beat the game and have all the items there isn’t really anything else to do bar challenge dungeons.

As for the battle system type effectiveness and status play such a huge part in stratagy that I don’t see it worth trying to make a poke clone without them. For just a monster raising game it wouldn’t be as important but as I said at the beginning of this post I’m only thinking about a poke clone. I don’t think it would need all 20 whatver types, or even duel types though. 2-3 triangles with some overlap between them would be plenty.(6-9 types)
Status’s shouldn’t really take too much space since their mechanics are simple. Parz half’s speed, burn half’s attack, frozen skips your turn, poison subs a set amount of hp each turn.

The steps in the battle system are pretty straight forward
Check priority
Higher priority goes first
If the same priorty
Check speed
Faster mon / higher priority goes first
Check status/ apply modifiers/ roll parz
Apply damage formula
Roll any secondary effects if applicable
Repeat for second mon

The capture mechanics on the other hand are awful and definitely should not be cloned.


#51

Yeah, I like the idea of a post game after completing the main adventure. There could be new hex files released with a whole new world, challenges, and monsters. And I also agree, the IV/EV mumbo jumbo is really unnecessary, really, and I doubt that anyone in the Arduboy community would devote that much time to that. I would also say that the capturing algorithum is too complex, but it’s also pretty ingenius. When you think about it, just writing in the code
if ( hp < 20 ) {
is too simple. I like the idea of you having a chance, even if extremely slim, of catching a monster with the most basic capturing device while it’s at full health or vise versa. It’d be more thrilling thst way rather than it being a guaranteed catch after reaching a certain value.
Also, what do think of the concept of evolution? Would you say it’s necessary?


(Pharap) #52

Sorry, incoming text wall.


Same, I liked the idea that it was specifically my Pokemon doing the obstacle removing.
(Though of the changes G7 made, that was one of the ones I didn’t mind, there was a lot of stuff I really didn’t like about G7.)

Though I do like not having to waste move slots.
I’d rather have a balance of not needing to have specific moves learnt, but still needing Pokemon who could have learnt the moves.

Possibly if it was a menu option.

Perhaps a ‘tools’ option in the menu and you are given tools to clear obstacles:

  • an ‘axe’ instead of ‘cut’
  • a ‘pickaxe’ instead of ‘rock break’
  • a ‘raft’ instead of ‘surf’
  • a ‘torch’/‘lamp’/‘lanturn’ instead of ‘flash’

‘Fly’ would have to be replaced with some kind of magic teleport rune or something.
Maybe a flying carpet like in dragon quest?

Where do completionists/“people who go past the E4 and collect all the mons but don’t necessarily bother with EV/IV training” fit into that?

Shoddy?

Probably not, but moreso for the lack of memory than anything else.

16 would be ideal.

I think dual typing would be worth adding.
It adds more depth than I think the amount of code needed would eat up.
If you have 16 or less single types then each dual type can fit in a byte.

What’s bad about them?
Have you got a better system in mind?

The original Gen 1 algorithm was pretty complicated, but the Gen 3 - Gen 5 equation is alright:

I think it would be better to have evolution than not have it.

It’s easy enough to just limit the number of evolution methods.
I think either only EXP or exp and special items would be sufficient and quite optimal for storage:

2 bits for evo method, 0 = doesn’t evolve, 1 = EXP, 2 = item, 3 = ???, then the remaining 6 bits can used for the evo level or item id (meaning the first 64 items have to be evo items and nothing evolves after level 63/64), then just a 1-byte ID to signify which monster that one evolves into.


#53

I should be more clear, the mechanics are pretty convoluted. In multiple cases greatballs preform better than ultraballs. Also everytime you attempt to capture a Pokemon it checks your location and the pokemon all for the specific case of not being able to catch ghost marowak. Also reducing hp past around ~1/3 has 0 additional effect on catch rate. In the case of a great ball anything less than 1/2 is a waste of effort. Again this only applies to the first generation, I can’t comment past that. A lot of these quirks wouldn’t really be relevant for the arduboy though. The ghost case is completely irrelevant. I personally feel only having one ball type is a livable reduction. It doesn’t really add much, and all of the later generation balls are pretty much useless besides very specific cases.

Evolution is definitely a core mechanic, however the 1,2,3 tree tropes aren’t. Later generations addressed this though, 2 stages pokes generally weren’t as good as 3 stage but now there’s plenty of cases that go against that. Grant Persian is a 2 step evolution and its one of the best pokes in the originals. Also granted that’s mostly due to abusing how criticals where calculated and its access to slash to further abuse that mechanic. I can’t comment on how the code mechanics work for evolution but some aspects could be compromised. Separate base stats are vital In my opinion. Different tables on when certain moves are learnt are not necessary. Sharing one move table between 3 pokes could save a few bits. I can only think of 2 examples where that mechanic had any relevance. Learning spore for paras and shroomis, as both evolutions can’t learn them.

My opinions are merely conjecture though. While I have a lot of knowledge of the mechanics, I don’t have the ability to put my money where my mouth is and produce the code in any term of efficiency or clarity.

It’s alright I’ve written a short novel. As for your comments, Shoddy battle was an online battle sim I use to play around ~2011. It’s since been depreciated (rip :coffin:) most recently by pokemon showdown. After the reveal the entire team and choose who you wan’t to lead mechanic was introduced I stopped playing competitively. I was not able to adapt to that change as It ruined stall and lead to the 6sweeper meta which ruined the fun and creativity of team building for me.

I wouldn’t consider completion of the pokedex necessarily post game content. In some examples it’s not even realistically possible with certain pokes being stuck in obtuse methods to get, like having to reply on pokemon XD, or the massive amount of event onlys. Plus needing to either trade with a friend or have 2 units and 2 gameboys. I have stadium, blue, and yellow and I haven’t been able to push through the tedium to capture them all in a single file. (I refuse to use the dotrio tower emulator as it can corrupt your saves. Even though the batteries have probably finally gone ded and taken my saves with them)

The battle tower is suppose to act as a single player version of the competitive mechanics. In the normal game evs are absent from the npc pokes. In the battle tower the pokes have good movesets and ev spreads and natures that are more minmaxed than you’ll find anywhere else. Attempting the level 5 cup for example is impossible without an ev trained poke.

Gen one only has level based evolutions and stones. The level up in x area or holding x item is imo bad design. Also in some cases those weird evolutions ended up being worse than the preevolves, i.e. Chargabug. Also shedninja is a single case and is really more of an easter egg. I personally don’t think stone evolutions are 100% necessary as they’re generally a nieche path of evolution or a redundant short cut. But if the space was available it would add more depth. I’m not sure it would be worth it though if there’s only 20 monsters. trading that for 3 or 4 more pokes would be worth the loss.


(Pharap) #54

Everything up until calculating F is pretty simple:

bool catchTest(const Ball & ball, const Monster & monster)
{
	if(ball.type == BallType::MasterBall)
		return true;

	uint8_t S = 0;
	if(monster.status == Status::Frozen || monster.status == Status::Asleep)
		S = 25;
	if(monster.status == Status::Paralysed || monster.status == Status::Burned || monster.status == Status::Poisoned)
		S = 12;
	
	const uint8_t R1 = rand8() % ball.mod;
	if(S > R1)
		return true;
	if(R1 < monster.catchBase)
		return false;
}

I’ve got a feeling F is probably easy in terms of CPU instructions and its these explanations that aren’t very good.
If they’d just dump pseudocode or maths instead of long winded explanations then it could fit in half the space.

It also doesn’t tally with the version Bulbapedia gives, so I wonder which version is wrong.

Like I say though, the Gen 3 - Gen 5 method is much better.

Ultimately though we don’t have to try to copy Gen 1.
Gen 1 had a lot of sloppy bits because the people writing the code hadn’t done anything like that before.

It’s better to look at the more modern stuff and scale it back to work on an 8 bit processor rather than looking at the Gen1 stuff and trying to directly adapt it.

Even better, have several move pools and have each monster species draw from more than one pool to add variety.

Apparently it’s been replaced with the open-source Pokemon Lab.

I know how IVs and EVs work, but all the metagame stuff bores me to tears.
I just like using my favourites, even if I end up losing sometimes.

Ardumon doesn’t have to be a direct clone, we can just remove that restriction.

Trading would be difficult anyway so we can ignore that.

They’ve probably got a glitch in the CRC.
(I’ve written a few basic Gen 3 party hacking tools before.)

Not that we’d be able to fit it anyway, but I disagree.

I disagree there.
I think the flaw was where they chose to put the evolution location, not the mechanic itself.

I wouldn’t like to estimate how much it would cost in terms of code, but I do somewhat agree there.


#55

I really like all these ideas. One thing to ask though. Would Ardumon be the final name of the game? Not to insult anyone, but it sounds kinda cheesy in my opinion. Do any of you have ideas for a name? The only few I can think of from the top of my head is Monpal, Monpon or Ponmon, or Discmonsters (that’s if the capturing devices were to be capturing disc of some sort), or the name can be left alone.


(Gavin Atkin) #56

A different name would be fine with me for sure. I like Discmonsters.
As for sprite size, I’d say it would be worth doing 16x16 instead of 8x8. You’d need more tiles for the world to feel large with 8x8 and with the methods we’ve used to render the world, 16 different tiles in 8x8 versus 16x16 would only save 384 bytes but the world would feel much larger and more detailed.

Edit: for reference, Arduventure used 1888 bytes for 59 tiles. But that was to have 4 unique areas with decorative tiles. That wouldn’t necessarily be required for this game, but it is doable.
Edit2: for 59 8x8 tiles it would be 472 bytes so a savings of 1416 bytes. I would still say it is worth it though.


#57

Good point. If the saved space is only over 400 bytes, then it’s hardly even worth it.
Edit: That is a lot, considering the 32kb the arduboy has. Guess it is worth it, but what if there were to be no scrolling as you move around the land and instead it was, like the original Legend of Zelda’s screen on the nes?


#58

I think I said something along that line somewhere in there but I agree. Like I mentioned with the hms, pulling them off of the pokes is definitely something that should be used vs the original method. My biggest issue is how the formula works vs how the player assumes it works. Great balls shouldn’t ever be better than ultraballs and the cuttoff where lowering hp stops increasing your odds is not transparent. + The ghost check.

This is why I stopped playing after 4th gen. One of my favorite teams was built around luring the opponents blissy out and then stat boosting a lanturn with charge beam till it could 2HKO said blissy and then roll a whole team. I had a similar set up with a rest/snore polywrath. Using NU’s to dismantle meta teams brings out a special kind of salt. I’ve never heard of lab, but Its been a while since I was involved. Smogon still uses Showdown, but that also opens a can of worms over smogons ou ladder vs the official meta.

I’ve never really looked into it. The card reader packs are pretty shoddy as is and disconnect a lot. If I had to guess it probably involves them to some degree. I only mentioned it since it runs the game at x4 speed, which really reduced the effort to grind out evolutions when trying to fill the pokedex. I’ve gone through the effort to train a comp team on my blue cart but filling the dex is too much. 20-30 mons would be different however.

I mean it more to make a point than hard estimates. In a case of 20 monsters dropping stone evolution for even 1 more poke would be worth it to me at least. At 30, 1 might not be as worth it. This assumes all of the monsters are properly balanced and there’s no garbage ones (Masquerain).

My point is the variety In team building is the most valuable aspect in terms of gameplay to me. In a case of 3 monster teams, going from 20-21 adds 190 additional team combinations assuming no repetition and order doesn’t matter.

I like that name, especially if other community characters are snuck into the game.


(Pharap) #59

I agree, Ardumon is a bit cliché.
Discmon would be good.
Or Bitmon.

It’s harder to judge the space algorithms use because you can’t be sure how the compiler will optimise until it’s written.


I don’t think anyone intended that.
It was early days, they weren’t used to programming and they weren’t maths geniuses.
(Nintendo started off making cards, they never dreamed they’d be making Pokemon when they started.)

Again, that only applies to Gen 1.
It’s better to just ignore the weird edge cases,
bringing them up doesn’t help anything.

I pick strong attacks and pray that they do decent damage :P
I don’t bother with the meta game at all.
I barely strategise beyond type effectiveness and move effects.

I make it 1040.

fact(20)/fact(17) = 6840
fact(21)/fact(18) = 7980

#60

Now that you mention that, the name would make sense well since the game would be ,in a way, like a crossover with other arduboy characters. What characters would be included in your opinion? I’d say Circuit dude and Flynn would be must a must since there really well known in this community.