Early work on a Platform Starter Kit Editor for XNA's Platform Starter Kit.
Credits for inspiration:
Nick Grevelyn's Tile Engine
http://xna.jtmbooks.com/
Platform Starter Kit
It is a mashup of the three. So far loading the levels, and placing of the tiles work perfectly. Next up is the entity placements like player start position, enemies and pickups.
We are working on an entity definition file so you can load in your custom entities.
Staff:
GlaphanKing initial editor.
MadMax32 - entity definition file and custom entity packs.
Once completed, we will release the editor for all to use on our new website (under construction). The initial plan on this is to start cranking out updated 8 bit platform games. Time will tell.
Monday, March 15, 2010
Sunday, January 10, 2010
Workable Tile Editor coming soon!
Ok, I have figured it out about the tile maps. Apparently, and this is really stupid, the 5 tilemaps (8x8) create 3x3 blocks(24x24). Using the caravan program I discovered this. I also resized the tiles to 48x48. Granseal's map tileset is gigantic but that is because they only use one tile layer. I might change this in future versions because this can make creating the tilesets very annoying.
So scratch what I said about putting off the tile editor. Its near releasable and will soon be able to create your own new maps and stories or make an entirely new game completely.
So scratch what I said about putting off the tile editor. Its near releasable and will soon be able to create your own new maps and stories or make an entirely new game completely.
Friday, January 1, 2010
Tile Editor put on hold until further notice
Well, I have decided to put the tile editor on hold for a while. There were way too many bugs and errors that I have decided to use a converter that converts RPG Maker XP files into a workable XML file. Since I already sunk money into RPG Maker XP a few years ago, I think its going to be an editor for now. I will do one later but for now, I doubt it. Sorry, guys.
With that in mind, I have been converting and studying the tilesets. I have noticed that there are some missing tiles. The reason for this is because they flip certain tiles horizontally and vertically. This is very annoying but when you are working with limited memory on a Genesis cart, I can see the point. But since the engine is on the PC, it makes it virtually limitless. Therefore, I'm going to make one tileset per map instead of one per layer in a map. 5 separate tilesets just doesn't work imho and I wanted to stick with the old ways but it looks like an upgrade is in order. Its for the best.
So I'm off to make some tilesets and maps. Hopefully everything will convert correctly, so I dont have to do things by hand. Its very tedious and I don't have the time to do it by hand.
Until next update.
With that in mind, I have been converting and studying the tilesets. I have noticed that there are some missing tiles. The reason for this is because they flip certain tiles horizontally and vertically. This is very annoying but when you are working with limited memory on a Genesis cart, I can see the point. But since the engine is on the PC, it makes it virtually limitless. Therefore, I'm going to make one tileset per map instead of one per layer in a map. 5 separate tilesets just doesn't work imho and I wanted to stick with the old ways but it looks like an upgrade is in order. Its for the best.
So I'm off to make some tilesets and maps. Hopefully everything will convert correctly, so I dont have to do things by hand. Its very tedious and I don't have the time to do it by hand.
Until next update.
Tile Editor Update
Happy New Year!
With that out of the way I can say that progress on the tile editor is moving along nicely. There is a bug when the tilesets change, the whole map changes. I've found the problem and should have it fixed soon. Other than that the til editor is working nicely. Its loading all the tilesets, changing them, and drawing/erasing/filling like it should. More features will be added later.
Next I will be adding the save and load functions once the bugs are fixed.
Until the next update.
With that out of the way I can say that progress on the tile editor is moving along nicely. There is a bug when the tilesets change, the whole map changes. I've found the problem and should have it fixed soon. Other than that the til editor is working nicely. Its loading all the tilesets, changing them, and drawing/erasing/filling like it should. More features will be added later.
Next I will be adding the save and load functions once the bugs are fixed.
Until the next update.
Thursday, December 31, 2009
Shining Force Engine in the works
GlaphanKing here,
Sorry for the long hiatus but I have been working on getting a engine created for one of my most favorite game series, Shining Force. I've been on ShiningSource for quite some time showing off some things here and there.
I will be starting to update the blog as much as possible so if interested, track the progress right here on the blog.
Until the next update.
Sorry for the long hiatus but I have been working on getting a engine created for one of my most favorite game series, Shining Force. I've been on ShiningSource for quite some time showing off some things here and there.
I will be starting to update the blog as much as possible so if interested, track the progress right here on the blog.
Until the next update.
Monday, October 19, 2009
FlyFF Achievement system in the works
Have begun work on an Achievement system for flyff private servers. Much like XBOX360's achievement system. In the hopes of making private server playing fun, I will release the system as well as the remote system as soon as possible.
More details to follow...
More details to follow...
Thursday, October 15, 2009
1a C++ 101: Crash Course in C++
First off, I'm not going to elaborate too much because you should already know a basic understanding of hwo to program. If not, then I suggest googling programming in c++ because this might be a little over your heads. Anyway, I'm going to go over some of the details involved in creating a pserver in c++. Mainly some of the procedures and what they mean, and how to work with files and headers.
1. Files and Headers
When you create a new file in c++ its always a good practice to set up a corresponding header for all the variable, function and method declarations. For example if you have a file called server.cpp, you should create a header named server.h. This tells the compiler to look for the header of the same name to compile all the instructions for the cpp file. An example would be if you have a function in the cpp file and you don't declare it in the header, the compiler will give a linkage error at the end of compilation. Remember to declare all the variables and functions in the header file and then use the functions in the cpp file.
Let's look at an example. I'm going to use PasteBin for these examples so let me know if the pages get removed after a period of time.
So here is an example of a header file and its corresponding cpp file. I will be using Selector from the Connection project in the login server solution. Note that the connection project is shared across both solutions.
Selector.h
Selector.cpp
In the header file you will see that it defines the Selector class and inside the class it has all the variables and declarations needed for it. Notice how you don't see much definition to the class functions. That's because we will detail them in the cpp file.
So now you might be asking, well that's good and all but whats up with the Selector:: stuff?
Good question. In programming you have what's called a namespace and in lehman's terms its how far the function can be seen. Meaning you can't call the function outside the selector class if you don't use the Selector:: namespace first. Should you go ahead and call it, you will get compiler errors. Not a good thing. So its always best to define the namespace in front of the function you are creating. That way all you need to do is include the header file of the class and you can use the function anywhere its included.
Now I'm going to talk about the different types of functions inside the classes. For example, you will and should know what void, int, bool, etc are when defining the type of function you want. So here are some examples of each one (not all because they can be infinite if too technical):
Void - This function simply runs from beginning to end and does not return a value. No end result. All results are done in function and that's all there is to it. The program will keep running after the function is complete.
Int, Bool, Short, etc - These type will return a variable in some form. Be sure its the type of variable you want otherwise you will run into conversion problems. Let's say you have an integer variable declared. You are making a function that will populate that variable. It is common sense to make the function return an integer variable and not a boolean variable.
Object variable functions - These will probably be discussed later in the lessons but for now know that they return an entire object complete with all its own variables and methods and functions. Usually passed into other functions altogether but they function just like variable return functions.
I hope this has given a little more knowledge on how things work inside c++ and every progam solution here on out.
Feel free to post comments, concerns and feel free to contact me with the same. Serious inquiries only and make them short and to the point otherwise I may need to charge for my services which is unnecessary when teaching for free.
Look for part the next chapter when we start looking inside the socket structure of the server and see how it functions.
1. Files and Headers
When you create a new file in c++ its always a good practice to set up a corresponding header for all the variable, function and method declarations. For example if you have a file called server.cpp, you should create a header named server.h. This tells the compiler to look for the header of the same name to compile all the instructions for the cpp file. An example would be if you have a function in the cpp file and you don't declare it in the header, the compiler will give a linkage error at the end of compilation. Remember to declare all the variables and functions in the header file and then use the functions in the cpp file.
Let's look at an example. I'm going to use PasteBin for these examples so let me know if the pages get removed after a period of time.
So here is an example of a header file and its corresponding cpp file. I will be using Selector from the Connection project in the login server solution. Note that the connection project is shared across both solutions.
Selector.h
Selector.cpp
In the header file you will see that it defines the Selector class and inside the class it has all the variables and declarations needed for it. Notice how you don't see much definition to the class functions. That's because we will detail them in the cpp file.
So now you might be asking, well that's good and all but whats up with the Selector:: stuff?
Good question. In programming you have what's called a namespace and in lehman's terms its how far the function can be seen. Meaning you can't call the function outside the selector class if you don't use the Selector:: namespace first. Should you go ahead and call it, you will get compiler errors. Not a good thing. So its always best to define the namespace in front of the function you are creating. That way all you need to do is include the header file of the class and you can use the function anywhere its included.
Now I'm going to talk about the different types of functions inside the classes. For example, you will and should know what void, int, bool, etc are when defining the type of function you want. So here are some examples of each one (not all because they can be infinite if too technical):
Void - This function simply runs from beginning to end and does not return a value. No end result. All results are done in function and that's all there is to it. The program will keep running after the function is complete.
Int, Bool, Short, etc - These type will return a variable in some form. Be sure its the type of variable you want otherwise you will run into conversion problems. Let's say you have an integer variable declared. You are making a function that will populate that variable. It is common sense to make the function return an integer variable and not a boolean variable.
Object variable functions - These will probably be discussed later in the lessons but for now know that they return an entire object complete with all its own variables and methods and functions. Usually passed into other functions altogether but they function just like variable return functions.
I hope this has given a little more knowledge on how things work inside c++ and every progam solution here on out.
Feel free to post comments, concerns and feel free to contact me with the same. Serious inquiries only and make them short and to the point otherwise I may need to charge for my services which is unnecessary when teaching for free.
Look for part the next chapter when we start looking inside the socket structure of the server and see how it functions.
Subscribe to:
Comments (Atom)