Want to make a PSO clone, need help with this and that.


What system do you use? If you run Linux I can help you setup a cross compiler with little difficulty. Someone else had some instructions for a Windows cross compiler somewhere, but I never bothered to figure it out since I wouldn't use it.
 
I hadn't started anything, I've been drawing a bit, mostly internal stuff, like the inside of a space station on a small city scape.


Good to hear its back on track, it's nice to hear progress :)
 
Mcobit can you compile GLES 2 code? WizardStan, I got one toolchain installed on my Linux system, but I dont know how to use it, I suppose you edit some cmake file? I have no experience or knowledge of that way of compiling, I just use command line in terminal with gcc usually, well always... except Pandora were I use CDEV-TOOLS.


I got the textures to work now, with alpha channel, that was the only textures I got working, weird, well anyway thats good then, but Mcobit if you can compile GLES 2 then I will make a graphics engine for that instead.
 
Typical Makefile looks something like



Code:
 	CC = gcc

	CXX = g++

	CFLAGS = -O2 -Wall  $(shell sdl-config --cflags)

	LIBS = -lSDL_mixer -lz $(shell sdl-config --libs)



My "Pandora" Makefile looks like



Code:
	CC = ~/oe/tmp/cross/armv7a/bin/arm-angstrom-linux-gnueabi-gcc

	CXX = ~/oe/tmp/cross/armv7a/bin/arm-angstrom-linux-gnueabi-g++

	CFLAGS = -isystem/home/user/oe/tmp/staging/armv7a-angstrom-linux-gnueabi/usr/include -fexpensive-optimizations -frename-registers -fomit-frame-pointer -O2 -I/home/user/oe/tmp/staging/armv7a-angstrom-linux-gnueabi/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -Wall

	LIBS = -lm -L/home/user/oe/tmp/staging/armv7a-angstrom-linux-gnueabi/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread

Change the directories to be wherever your toolchain has been installed, of course.


My more advanced Makefiles have an "ifeq ($(ARCH),pandora)" switch to go between the two, and then when I build I say "make ARCH=pandora"


edit: tag fixing.
 
Last edited by a moderator:
It is easy to compile gles2 code, if it is written natively for Pandora. Just link against the right libs and you should be good to go.


As said, if you need to create the context, you can use eglport if you're doing a sdlapp.


Time is a bit of a problem for me these days, so I cannot promise that I can compile stuff fast, but if you send me some code I'll try.


If you installed yactfeau as the linuxtoolchain, then you need to copy the right cmake toolchainfile to the right folder to make cmake work but I'd go with a plain makefile. Thats a lot easier on linux and of course should be sufficient for testing purposes. Cmake might be better, if done right, especially when sou need to find libs and stuff in crossplatformapplications, but if you are targeting the Pandora directly, a makefile is the way to go :)
 
Ill send you some GLES 2 code someday, I can test my system in GLES 1 myself, and make sure GLES 2 code should run by testing it in iOS compiler on Mac, if the shaders work there it should work on Panda also, Ill see if I can get how much simultaneous textures and vertex attribs and everything the Pandora gpu can handle. The main problem right now is getting data use down for ram, and thats what I can ckeck myself with GLES 1 anyway, when I started programming I couldnt understand why so much ram was ever needed by games nowadays, now I cant understand how they can use so LITTLE! :)
 
small update:


I pretty much finished the renderer, I designed a much smaller ram usage for data.


The camera works overall like in PSO I hope, if you centralize it it changes completly view from frame to frame, wich could be a bit confusing, but since you dont do it 100% of the time hopefully it will be playable like that anyway, I tried doing different things to get a smooth movement to the new centralized cam position, but I couldnt work it out quickly and easily, mayby I go back to work on it later but I dont have motivation right now anyway since I dont need such a camera for any other game I wanna do right now.


The collision detection works and is now completed in a automated system, its not the most accurate and its as simplified as can be, so you dont slide along the walls you get stuck instead. It would require substantially much more cpu resources to make sliding processing, and its not really needed, I dont remember if PSO had it or not but Id like to think it didnt.


So the engine is pretty much prepared for content creation now, Ill make an animated caracter and bit of enviroment and then send the code to you mcobit, it will take some time, lets say a couple weeks.


EDIT: I should also mention I decided to make static lighting afterall, for ease and speed of production plus the shadow textures would take up a lot of space also.
 
Last edited by a moderator:
Ok, so it wont play as nice as PSO, but atleast it will play at all wich will have to do for now. Mayby I can improve both the camera and collision detection system further down the line.


Whats that script youre talking about, can I have that? That sounds like a bloody miracle thing! Learning to use Blender must surely be faster and easier then trying to make anything with my crude bs editor, I could have some good use of that myself then.
 
Looking for a conversation of the past I digged through my participations on threads and found this, well I have been thinking about it quite a bit as of lately. The status is like this: I dropped pretty much everything I was doing before when what is currently called Spirit Shard went serious, Ive been working mainly on that 2D code since, but I started making a 3D game called "Labyrinths of Crystalia" lately, and Ive been thinking of using that engine for a sort of PSO clone, BUT(!) it only deals with blocks, no fluid enviroment or what to say, basically it looks like Minecraft but bigger blocks, well not everything is square specifically but collision detection deals with it in that way. Actually it might not be a bad idea to use this engine and make a community project for an online game, it would be quick and easy to make levels and so on... Im working on the engine currently, and I have Spirit Shard demanding time but once the engine is done I can demonstrate the tech and how to produce models and animation for it, and then anyone who wishes can produce maaterial and we will wip up a cool online game exclusive for Pandora!
 
Im almost done with Labyrinth of Crystallia, and Im nolonger working on Spirit Shard, but I could certainly improve the Labyrinth engine quite a bit and make it much better to work with, actually I have learned so much since I started Labyrinth that I would rather start over from the beginning and redo everything from scratch, but now that Pyra is happening im not really interested in doing Pandora games, it would be totally ace to do something cool for the release of Pyra, quick and crappy graphics but fun gameplay. I should make a new engine that others can build upon as well, Ill wip up something fantastic and then people can easily add features and content and stuff.
 
I await this. If you can get enough of it done then by the time the pyra comes out the game could take off. The idea sound awesome. And from what I've played with the GameCube version of PSO the maps are almost tile based with random patches strung together each patch having a different mob layout. I wonder how difficult it would be to recreate this if we use the lock the doors till the mobs are dead route. I wonder if you could have the rooms render ahead selecting mob load outs. Since mobs spawned when you ran into the room. The square based dectection would work since the GC seemed to use the same system. Also textures could easily be worked over by decent pixel artists. If you can produce a simple tech demo PND you might get more support.

Sent from my Z665C using Tapatalk
 
I have been investigating and thinking about this for a day now, I tried to make a collada (.dae) file loader but its a bit complex and I dont have the energy to experiment in order to figure out what is what and how it works. I would rather write my own animation tool and I will do that in the future, but then it will be a situation were theyre programmer tools and not just anyone can figure out how to use them... We could use the Labyrinth "engine" but it eats ram like a black hole and doing different weapons would be a proper pain to go through, hmm actually now that I think of it, well yea it would be a pain cos you dont want just a few types like rifle and pistol and so on you really want custom graphics for special weapons and you cant attach a weapon to hmmm or could you? YES YOU COULD!

Allright, so you can create a model in blender, then pick a triangle on the hand, and apply a different texture to it, and in the .obj file you will see wich triangle use that texture and you can save it to a special reference and use vertice A to apply to the weapons position and vertice B and C to make dot product to get the angle for weapon! Then anyone can still use Blender to make characters and animation! It will still eat a ton of RAM to load all frames for a model, you need according to my eyes minimum 40 frames of animation per second for the movement to look smooth enough, and then different people are different sensitive to judder... And loading all that data takes a long time. But atleast its possible to do at all with very little skill.

But I need to make a new level system, we couldnt use a block system for this it eats to much ram and graphics will be to crap and to many triangles wasted on parts that cant be seen. We should draw lines around the area, that should be easy to process, but the lines have to be drawned manually, then in Blender seperate floor from rest of level and save in different files, then you get as few polygons as possible to process with barycentric calculation to get the height for character and the position that can be looked up in a texture to get shadow value, if we would handdraw shadows to a seperate textures, it would make a major difference for graphics but it would require much more texture and painful work, lets skip any light data, just do static light. Actually it wouldnt be that much work to do shadows, lets do it for outside areas, and inside areas can contain other textures.

So each triangle have 2 textures, the main surface texture, then for outside areas a shadow texture. For inside areas an emmission texture, the color data on the emmission texture will remain bright in an area that has had its light dimmed temporarily. Characters have emmission textures to. Levels can make use of 2 sets of texture maps, the second containing animations, since binding textures creates a lot of drawcalls that will slow down the framerate and limit how many polys you can have in a scene I think its a good solution to put all individual textures side by side in a large one and then when you load a level I add in the data so the texture coordinates fetch the proper area and so on.  I have no idea how many polys the Pyra will be able to handle, but lets guess at 50 000 in a scene, thats the level, characters, items, everything INCLUDING the polygons used to display the OSD graphics! I could use 20 000 in Labyrinth on Pandora but framerate was quite poor, and here there will be more drawcalls also.

Fuck yea Im getting excited now! :D I will put together the technology asap! But I will not be making this game alone, I wont do much work on it at all other then getting the core tech in place, then I hope other people will create content, design and code gameplay and so on, and I can make a character or item every once in a while or something. The code should be simple enough that anyone who know basic C should be able to code gameplay like make what strenght and defense a character should have such abilities and when you pick up an item that increases strenght that value increases and so on. No one should ever have to touch the render system, just add the data by copy paste a model and replace some names in the text and a new object will be there in the game to interact with. So how many people are interested in creating content or coding gameplay functionality and design of gameplay?

I propose the battle mechanic should be 0.5 second segments and if triggered one after another different moves would be activated, I made a scetch like this:

class object{

public:

float *vertices;

float *texture_coordinates;

float *animation_attack_light;

float *animation_attack_heavy;

float *animation_attack_final;

float *animation_walk;

float *animation_activate;

float position[3];

int hitpoints;

}

I made a few more variables but no need to write it here, so to interact with a object wich could be your character or an enemy or basically anything, type something like this:

player.position[0] += 1.0;

player.hitpoints -= enemy_robot_damage;

player.animation_select = player_attack_heavy;

player.animation_time = current_time - player.animation_beginning.

render(player);

so in the object class feel free to suggest what to put there or if gameplay should be designed in another fashion?

And also a lot of animations will be required, different walking animations for each class of weapons you might carry and so on, and all animations must fit into ram at same time cos it would take to long to load new data in the middle of the game, especially in multiplayer you cant pause the game for others just to change weapons constantly.

So what you think guys?
 
I finnished the renderer yesterday, but I thaught about something as there has been a lack of voices saying they want to create content, cooperations never work anyway, and I can understand why, if people have no experience of game development they have no experience of how much time it takes, even a simple game small in scope is a big undertaking, theres just so much details that needs to be done. 

And if you work you wouldnt wanna spend to many hours of your precious time doing what will become frustratingly boring quickly. The reason I didnt want to spend time on this is because I got another game in mind that I hope to make money on, and I thaught briefly about turning this into a commercial project but I doubt it would sell and not only that, I would be worried about SEGA findning out about a perfect clone more or less... Even if I wouldnt get sued I would atleast feel ashamed. But I really wanna play a PSO like game on the Pyra now in multiplayer so Im gonna do it regardless, just set your expectations on the graphics low! I will make it at the side of a more serious project that will be prioritated and I wont be spending any time or effort in making kick ass graphics. I will also make it the way I please and probably try to do some things differently and so, as the creator its my priviliege so there! :p But I should release the source code along with the game and we will see what happens with it, atleast this source code should be readable and easily modified.

So I aim for a release as close to the Pyra release as possible, and I will probably need help porting it, Im doing 60-70 000 polygons budget with as few drawcalls as possible and Im gonna try to keep texture size down, so hopefully it will run without any probs... Im deving on Linux using SDL and OpenGL 2.0 with shaders, so far the only thing that should need modifying for a Pyra compile should be to include EGL instead of GLEW and changing the #define video_out from SDL_GL_SwapBuffers(); to EGL_SwapBuffers();

That should be all.
 
Honestly, the way you seem to work would probably keep me far away from the code side of things, as I probably would not be able to figure out what you are doing (I'm a total beginner). But in terms of perhaps helping research how to effectively plan out the netplay side of things or perhaps create artwork, I'd love to help you out here.
 
Well artwork dosnt hurt, but doing low polygon low res texture models itmight not resemble the artwork or might just look better else way anyway.  I have a good idea how to design the netcode already.
 
Back
Top