Author Topic: Pokémon Trainer [FIRST PROTOTYPE FUNCTIONAL WO!!!]  (Read 12155 times)

People in the interest topic indicated interest in this sort of thing, so I'm moving forward with this.

This modification will provide the basic systems for a more genuine Pokémon experience in Blockland. That is, it will contain actual Pokémon battle mechanics and other systems which may be found in the actual games. The main basis for the technological aspects of these systems comes from Generation IV games, however development will start at Generation I Pokémon.

At this point, the plan is to have battle done via a client-sided modification so that proper GUI may be used. However, early prototypes may use bottomprint or similar functionality already available for testing purposes.

Please contact me if you have questions or would like to contribute one way or another, be it ideas, code, art, GUI, etc. All contributions are equally appreciated.

This mod is also meant to only contain the systems detailed. This means it is not a game mode on its own; it will not have a build or be packaged and distributed as a game mode. Interested parties would utilise this mod in their own game modes and servers to create their own games using it. This is in the interest of appealing more generally and promoting work towards a sturdy and functional basis rather than wondering how to properly gamify it in Blockland. If you want to use this on your server, please keep these things in mind.

This project will be available and kept up-to-date on GitHub, however, keep in mind that the versions found there are almost certainly unfinished or unstable. Please yell at me for not working or being bad at working.



(original OP)
I've had this idea because I saw the Minecraft mod Pixelmon. Pokémon RP has been common in Blockland for a while, however no complete mod has ever been made; only RP tool-like mods. I think a proper Pokémon fighting system would work well in this kind of environment if applied correctly, and have begun working on such a mod.

This mod would include a proper Pokémon battle system with Pokémon from the games. I would likely start at generation I for the earliest versions for simplicty in development, and afterwards expand to include as much of the later generations as possible.

At this point, I would likely have battle exclusively visualised on the client, as modelling each Pokémon individually would obviously be a very ambitious goal. This would mean a client mod would be necessary, however the necessity of a mod on the client-side means I would have more freedom to make a more proper HUD and other GUI for the intended purpose. I understand that some may be opposed to client modifications as a necessity for play, however, this would be the simplest and most effective way to create an experience similar in nature to Pokémon.

I would also like to clarify that this mod would exist to provide the structure for Pokémon gamemodes. This means that it would not be an out-of-the-box RP or RPG, or indeed a game mode at all, unless packaged with the proper additional resources to be one. Although, I would likely attempt to undertake such a project alongside this one for testing purposes, though my ability to create an attractive build on a large scale alone may be limited.

Things I have not yet extensively considered:
*Wild Pokémon; likely event-driven or similar
*Breeding, day care, and friendship
*Battle HUD arrangement; e.g. overlay PlayGUI (In a window) or change screen content entirely (Change entire screen, as you do when switching from the menu to the loading screen, or from the loading screen into the game, etc.)
*Likely other things; will add as things come up.
For all of the above listed things, I would like to hear feedback from parties interested in creating servers using a mod like this. If you would like to somehow get involved in development of this sort of thing, feel free to contact me as well.

I don't want to come across as egotistical; under ordinary circumstances, I would pursue a project under my own interest, however this sort of thing is a bit different from the kind of mod I usually make, and would cater to a very specific group of people. I just want to know if the audience is even there, and, even better, if part of that audience would provide input or assistance in development.


Did a bit more work, got the backgrounds in.



Nonsense names were randomly generated using an old recycled function from my old wario ware gamemode. my favourite was 'cheetieng'

Trying a similar approach to what I was already doing, except now it's all in the same window. Gives a bit more space to work with in both directions.



also, dialogue box was put in

also also,



baby steps



idk why that dumb watermark is there it usually isn't w/e




tested pvp battle with this guy!!




THE FIRST PROTOTYPE IS NOW FUNCTIONAL WOW!!
« Last Edit: July 08, 2017, 03:33:03 PM by otto-san »

The main basis for the technological aspects of these systems comes from Generation IV games, however development will start at Generation I Pokémon.

I know absolutely everything about the mechanics of the main-series Pokemon games and have in-depth knowledge of the hardware and software driving the original GB games (mostly applicable to GBC games as well). The latter may not be useful since you mentioned you plan to focus on the DS technology, but I'd be happy to monitor this thread and answer any questions that may arise.

Also, I'm not sure what you use for data files of base stats and such, but Pokemon Showdown and Pokemon Online are two battle simulators that have their data files publicly available for download. These are of course easily readable by script. PS is also entirely open source and written in JS which would be easy to reference if you are wondering about how to implement a certain feature.

Neat. Thanks for the tip.

I've been looking at database files from some other Pokemon projects to get an idea of what information I'll need. The main issue so far has been how less straightforward moves will be stored, loaded, and functional without having to write explicit code for each one. I think I have a pretty good idea of what I'm doing now, but the two places you pointed to should come in handy as well.

UPDATE:
Basic battle system is implemented and functional. Next step is to flesh it out a bit more so that move effects and statuses are working well.
« Last Edit: December 23, 2014, 03:26:35 PM by otto-san »

I would love to help with this if I could. I can make models and help with a few scripts if need be. I know you already saw my post on your other topic. I can also make icons and other UI elements. Here is a basic GUI created for swapping pokemon and viewing badges; I made this for my Blockemon Mod so it's not really finished yet. Just wondering what you think



Ninja: Just noticed I forgot the C in Blockemon on the GUI :3

Quote from: Otto-san
please yell at me for being bad at working


« Last Edit: December 23, 2014, 03:44:33 PM by Goth77 »

Feel free to contribute in whatever way you want; the code will always be on GitHub. I update every time I get something working to some degree. I don't know if I'll have any use for models at this point, but once the client side becomes more relevant, GUI ideas and contributions will be well-appreciated.

Feel free to contribute in whatever way you want; the code will always be on GitHub. I update every time I get something working to some degree. I don't know if I'll have any use for models at this point, but once the client side becomes more relevant, GUI ideas and contributions will be well-appreciated.
Alright cool. The reason why I asked about models was because you said that you had functional attacks/battle system. I'm sure they would be epic paired with some models :3

Thanks though. I will be sure to contribute when I get some more free time. The holidays are always such a busy time for me >.<

I am willing to help.

My coding in torque may not be up to sniff but I can modify.
I am pretty good in digital drawing. So Goth if you need any help with UI, feel free to ask. (picture of game I was making)
For database access I know SQL and access. Don't know if that is useful.

Just tell me what you need and I'll do my best.

I am also willing to donate my map:
http://forum.blockland.us/index.php?topic=270729.0
It may not be super detailed, but it is big and versatile.
And has all buildings already in place.

At the moment, databases are being handled in access, exported to a CSV file, and converted to JSON using a python script. You can see the big mess I've made in the data folder on GitHub.

The build could be helpful for testing things later on.

Your database may indeed be a bit of a mess, but looks mostly all right.

Although, this may be interesting if you haven't seen it:
http://veekun.com/dex/downloads
It is a site where you can find all sprites/sounds/icons/items/... you can think of from the Pokemon games.
And everything is free to use (sort of):
"You can use anything on this page however you want."

It even has a database with presumably all pokemon stats.
The problem is that it is in sqlite, but I'll try to convert it to access and csv.
It shouldn't be too hard.

I noticed you're using bubblesort in https://github.com/ottosparks/blpokemon/blob/master/System_PokemonTrainer/script/dep/string.cs . Use GuiTextListCtrl instead, it has a sort function which uses C++ sorting instead of slow torquescript sorting.

It even has a database with presumably all pokemon stats.
The problem is that it is in sqlite, but I'll try to convert it to access and csv.
It shouldn't be too hard.
Yeah, I exported the (old) Pixelmon sqlite database to CSV to get the original databases. It just feels kinda cheaty but I guess it really doesn't make a difference since they would contain the same information regardless. The link you gave looks super-useful, thanks. Although, I realise now it's perhaps unnecessary to export from sqlite to CSV then from CSV to JSON if I'm using a python script for the latter anyway. Probably better to cut the middleman.

I noticed you're using bubblesort in https://github.com/ottosparks/blpokemon/blob/master/System_PokemonTrainer/script/dep/string.cs . Use GuiTextListCtrl instead, it has a sort function which uses C++ sorting instead of slow torquescript sorting.
Ah, right, I forgot about that method. Thanks for pointing that out. The function shouldn't be called too often, but in larger battles it has the potential to be called many times at once; so it'd be better to have something a lot faster.

EDIT:
I'm beginning to start work on some GUI at this point. I've gathered the files I'll need for a battle screen, so I should have some fun getting that working. GUI design is just challenging enough in TGE. Don't have to wrestle with the system itself as much as the actual content. I've always enjoyed making more complex constructed GUI. I'm using gen. V sprites for the pokemon since I'll probably add gen V pokemon eventually. I got the images for gen IV battle UI, but that was mostly because I found the battle stage sprites for that generation. I like the gen V UI better personally, though, so I'll most likely switch to using images from black and white whenever I can find them.
« Last Edit: December 26, 2014, 12:55:43 AM by otto-san »

I'm beginning to start work on some GUI at this point. I've gathered the files I'll need for a battle screen, so I should have some fun getting that working. GUI design is just challenging enough in TGE. Don't have to wrestle with the system itself as much as the actual content. I've always enjoyed making more complex constructed GUI. I'm using gen. V sprites for the pokemon since I'll probably add gen V pokemon eventually. I got the images for gen IV battle UI, but that was mostly because I found the battle stage sprites for that generation. I like the gen V UI better personally, though, so I'll most likely switch to using images from black and white whenever I can find them.

Question.
What are you going to use as background for the battles?
Is it going to be transparent, or are you going to make an entire overlay?
It would be fun to do something in Blocklands style.
Build a couple different themed arenas and take pictures to use as sprites.

It would be even better if the player are teleported to an arena so the camera can spin around in a 3D environment.


And, (this may sound crazy) it would be even better to build all Pokemons with bricks and use the pictures as sprites.
Or even copy the brick pokemon inside the 3D arena while the player is battling to have the full effect.

But that seems too much work :P

At this point, the plan is to have a battle screen fairly identical to the games. It would likely have some chat element as well since chat restrictions of any sort are one of the worst things in any Blockland anything. Having a three-dimensional arena would be interesting, but having representations of the pokemon is tough. Bricks don't really allow for the level of minute detail that would be required, and models would be obviously difficult. A simple two-dimensional battle stage is likely one of the best ways to go about it, at least to start with. We can think about more interesting approaches when the client-server code is working cleanly and the mod as a whole is in a release state.

Having a blocklandish theme would be a great touch, but it's not of high priority at this point. We'll have to see how it feels when everything is in place.

this took way longer than it looks like




the screen itself is p much done and ready for triple battles. no client-server code is actually done yet but this is lookin p gud

there are some differences here between the actual games. one is that normally triple battles display the player pokemon's stats in a more compact form but from what i can tell this is because of screen resolution constraints and it's more useful to see the XP bar and health values of the pokemon all at once

from what i can tell i spent like four hours on this lol



here's a loop of randomly generated battles

« Last Edit: December 28, 2014, 01:06:17 AM by otto-san »

this took way longer than it looks like

If you're going for accuracy, the colored parts of health bars display hitpoints with precision out of 48.
So 2 pixels per 1/48 since your health bars are 96 pixels wide.

And it hadn't even crossed my mind how the sprites would scale but they came out perfectly.