• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Pokemon C# Engine

Status
Not open for further replies.
146
Posts
11
Years
  • CO
  • Seen Mar 16, 2023
This looks very interesting ^_^
I have just started to learn programming through C from a very great site called computerscienceforeveryone.com
So far I am still in the basics but am wondering how long it took you to learn C#?
and how easy is it going from C to C#?
Another question I have is why not use C++, wouldn't that be more efficient?

I ask because I came across a page on the net named "Why pokemon is so buggy" so I clicked and read on and it goes to say that the gb/gbc/gba games are programmed entirely in Assembly and that its amazing that they even work as the difference in ASM to C is quite significant.

Spoiler:
 
99
Posts
14
Years
  • Seen Jan 16, 2023
This looks very interesting ^_^
I have just started to learn programming through C from a very great site called computerscienceforeveryone.com
So far I am still in the basics but am wondering how long it took you to learn C#?
and how easy is it going from C to C#?
Another question I have is why not use C++, wouldn't that be more efficient?

I ask because I came across a page on the net named "Why pokemon is so buggy" so I clicked and read on and it goes to say that the gb/gbc/gba games are programmed entirely in Assembly and that its amazing that they even work as the difference in ASM to C is quite significant.

Spoiler:

1. I learned C# in about a month before I started this project. I already had background in Java though.

2. I don't know C, can't tell you. C is not object-oriented while C++/C# are, however.

3. Only the first Pokemon games on the gameboy may have been written in Assembly. They were written in C/C++ afterwards on the advance. Also this article inaccurate: the first games (red, blue etc.) were not "buggy", the games were playable without any bugs. It's just that people found a large amount of ways to exploit the way the game works and the slow processor (Pokemon duplicating etc.) Just about any gameboy game is "buggy" like pokemon is, it's just that Pokemon has many more well known glitches than any other games.

Also, A lot of these exploits weren't found until decompiling the game and inspecting how it behaves.

The large list of glitch Pokemon is only due to getting pokemons above the id #151 which would result in reading garbage data and interpret it as a Pokemon. The garbage data is no longer read in more recent games because the language take cares of memory management and such itself.
 
146
Posts
11
Years
  • CO
  • Seen Mar 16, 2023
1. I learned C# in about a month before I started this project. I already had background in Java though.

2. I don't know C, can't tell you. C is not object-oriented while C++/C# are, however.

3. Only the first Pokemon games on the gameboy may have been written in Assembly. They were written in C/C++ afterwards on the advance. Also this article inaccurate: the first games (red, blue etc.) were not "buggy", the games were playable without any bugs. It's just that people found a large amount of ways to exploit the way the game works and the slow processor (Pokemon duplicating etc.) Just about any gameboy game is "buggy" like pokemon is, it's just that Pokemon has many more well known glitches than any other games.

Also, A lot of these exploits weren't found until decompiling the game and inspecting how it behaves.

The large list of glitch Pokemon is only due to getting pokemons above the id #151 which would result in reading garbage data and interpret it as a Pokemon. The garbage data is no longer read in more recent games because the language take cares of memory management and such itself.

I see... I am currently learning C at the moment, it is my first programming language. How much more do you have to do before releasing a beta for testing?
 
29
Posts
17
Years
I was wondering when someone would finally just make a Pokemon game maker. It would certainly make things a lot easier. Pokemon Essentials is neat and all, but it does feel a bit forced and cluttered. It's not Maruno's fault. It's like building a table with a screwdriver and nails. Sure, it can be done, but it's not at all efficient. A hammer is a better tool for nails.

Here's hoping that this project gets off the ground. I'm really liking what I'm seeing so far. It's like if RPG Maker was made only for Pokemon games. Nothing wrong with that. I approve, since I know very little about scripting, so if you can mimic RPG Maker's event system, I would be right at home.
 
99
Posts
14
Years
  • Seen Jan 16, 2023
I was wondering when someone would finally just make a Pokemon game maker. It would certainly make things a lot easier. Pokemon Essentials is neat and all, but it does feel a bit forced and cluttered. It's not Maruno's fault. It's like building a table with a screwdriver and nails. Sure, it can be done, but it's not at all efficient. A hammer is a better tool for nails.

Here's hoping that this project gets off the ground. I'm really liking what I'm seeing so far. It's like if RPG Maker was made only for Pokemon games. Nothing wrong with that. I approve, since I know very little about scripting, so if you can mimic RPG Maker's event system, I would be right at home.

I'm not sure whether or not I want to spend the time yet for a RPG Maker type of event system considering it would take me quite some time to do, let alone figuring out how to structure it. It's not like writing scripts would be hard but anyway.
 

Wootius

Glah
300
Posts
11
Years
  • Seen May 31, 2022
RMXP's ease of movement/text/variable control is very spoiling. Being able to just click when to warp is awesome too.

I just played around with FireRed again and it's damned easy now to do stuff now(like expanding the movetable + special/physical split. Did it in twenty minute with the tutorials.) but RMXP is so easy to use I can't bring myself to switch. The people who've worked on Pokemon Essentials have made it so easy a child(like 8) could make a working fangame. It'd be short and terrible, but you could play it.

That and editing the AI/Abilities in RMXP will be much easier.
 
Last edited:
99
Posts
14
Years
  • Seen Jan 16, 2023
RMXP's ease of movement/text/variable control is very spoiling. Being able to just click when to warp is awesome too.

I just played around with FireRed again and it's damned easy now to do stuff now(like expanding the movetable + special/physical split. Did it in twenty minute with the tutorials.) but RMXP is so easy to use I can't bring myself to switch. The people who've worked on Pokemon Essentials have made it so easy a child(like 8) could make a working fangame. It'd be short and terrible, but you could play it.

That and editing the AI/Abilities in RMXP will be much easier.

Right, well then I'll see what I can do.
 
99
Posts
14
Years
  • Seen Jan 16, 2023
pokesharp.com has be bought and we will have a teaser page up very soon! Some may say it's a little early for thinking about the site, and I will agree to some extent, but my good friend's hosting company provides us with free hosting and he really wanted to get it all setup already. We just have to pay for the domain every years which is like only 10$. My friend also paid for the domain this time. He will take care of everything that is code related to the site. I am very grateful to him and we should all be.

On a more pokesharp related note, I am working on 2 things at the same time right now which is tile behaviors, otherwise known as the movement permission layer in advance map, and an in-game console that will let you send commands to the engine to debug and stuff.

Some specifications about the permission layer in this engine that is different than advance map:

1. Ice, low ledges (up,down,left,right), tall grass, spinning (up,down,left,right) etc. all constitute their own behavior unlike advance map where an ice tile will always be slippery. Not only does that allow for more jerkish puzzles (an ice tile that's actually no ice in a ice puzzle, omfg) but it also works on the concept that if it's slippery ice, then you can obviously walk on it and should not be made unpassable, making it less error prone to mapping errors.

2. You can specify default movement behaviors to your tiles in the tileset tab of the database window. These default behaviors will be applied onto the movement permission layer when laying tiles on the map, minimizing the need of actually having to make edits to the permission layer. Such edits should only be needed when multiple heights have to be supported.

3. Heights work exactly like in advance map, i.e: you set height change tile behaviors onto stairs and set the height higher on the terrain using the tile permission for a higher height. The player will not be able to go from one height to another.

Writing this post made me realize that I cannot keep tile behaviors and height behaviors on the same permission layer because one may want to actually have ice on a higher height. I will separate the 2 later. In most cases it shouldn't cause problems though.

On a side note, I installed mediawiki on the site so I can prepare a couple of articles until release. I also spent a few hours to learn the basics of HTML and CSS so I can make nice looking articles, though I'm sure one of you guys is a massive CSS or mediawiki nerd here and will know how to organize the wiki. ;) The wiki is available at pokesharp.com/wiki/ I feel like I'm gonna regret not keeping it private for now.

edit:

I added a neat little feature on 2 tools for now

Spoiler:


It will give a preview of the affected tiles for bucket tool when you hover over tiles and the rectangle tool will show the changes in real time rather than just showing a rectangle around the affected region

I uploaded a video demonstrating it on my channel as well
 
Last edited:
99
Posts
14
Years
  • Seen Jan 16, 2023
Project is on hold for a week or two:

doing warmup game for next 5 days or so then ludum dare!
 

SinfulGuroRose

Ignore me, I'm socially inept.
77
Posts
10
Years
From the previews you've put up so far, this looks like not only a well designed tool, but also user friendly! o: I'm very excited to see this unfold.
(Also, the website is absolutely adorable! <3 Love it!)
 

Maruno

Lead Dev of Pokémon Essentials
5,285
Posts
16
Years
It's a shame to hear that. You're very kind for releasing your source code, though; I'll definitely be having a look at that at some point.

Would you care to provide a short summary of what you've already achieved with your engine?
 

KingCharizard

C++ Developer Extraordinaire
1,229
Posts
14
Years
I am stopping development of PokeSharp. For more details, check out this post I made on my subreddit http://www.reddit.com/r/PokeSharp/comments/1l5eeb/my_stance_on_pokesharp_at_the_moment/

I read your reasons and I gotta say if you love programming then programming anything would be fun, not boring. Also I find it kinda silly and rude that you would abandon the project after someone else bought you a domain and set up a site.

Also Pokemon has many complicated features that I'm sure you have not programmed or completed, I think many of your reasons for dropping the project are left out..

Its sad to see you quit, and quitting now could become a habit in the future.. Anyways good luck in whatever else you decide to do.
 
99
Posts
14
Years
  • Seen Jan 16, 2023
I read your reasons and I gotta say if you love programming then programming anything would be fun, not boring. Also I find it kinda silly and rude that you would abandon the project after someone else bought you a domain and set up a site.

Also Pokemon has many complicated features that I'm sure you have not programmed or completed, I think many of your reasons for dropping the project are left out..

Its sad to see you quit, and quitting now could become a habit in the future.. Anyways good luck in whatever else you decide to do.

Coding the actual engine was very fun. It was the development tool that was crap boring. Many programmers can tell you that windows form are not fun to work with. I know the site guy well enough, he doesn't really mind because he pretty much swims in money. He bought like 3 graphics card worth 1000$ each for his rig just because he can.
 
64
Posts
10
Years
  • Age 36
  • Seen May 29, 2020
So, you need a challenge with some mathematics in it. That can be arranged. To make the product of this challenge useful, it will have to fit in Pokemon Essentials though...

Challenge:

You know that there is a random dungeon creating thing in Pokemon Essentials? What if you were to expand it? Make it create whole maps, maybe regions, by clicking a button! The good thing about this is that the owner of the map doesn't even know the contents himself...

Features:
- Connectivity: Make sure the roads are connected! It would be annoying if you can't reach a specific part of the town... Water and trees may have to be connected too, see also my point of aggregation.
- Make the user set the density of houses, tall grass patches, water, trees, etc.
- Groups of houses may form towns, groups of trees may form forests: will the distrubution of the different attributes be aggregated, or equally spread out? There will have to be a parameter for the user to be set for each attribute available: high aggregation of house will lead to big cities, low aggregation of houses will lead to small villages. The same goes for trees and their forests.

To make this work right, you will need to dig into some spatial modelling stuff, and mathematics can't be avoided. Plus, I think there are many people who would gladly make a game in a diverse map/region randomly created, unique, and unknown! On top of that, creating a map would only take some time to render, let's say, 20 minutes or so and a whole region is done...
 
Status
Not open for further replies.
Back
Top