Does Retro Game Dev (PS1) differ that much from modern game development and engines?

Post a topic about yourself to let others know your skills, hobbies, etc.
Post Reply
ThomasEngine
What is PSXDEV?
What is PSXDEV?
Posts: 1
Joined: Apr 30, 2021

Does Retro Game Dev (PS1) differ that much from modern game development and engines?

Post by ThomasEngine » April 30th, 2021, 4:20 pm

Lately, I've been learning C and looking into creating games in an environment that's very barebones. I've felt as if the PS1 would be a great environment for this, so I can focus on learning the PSY-Q SDK and understanding how the process of building games works on a very small scale. I'd sit down and attempt to remake simple classics such as Tetris, Galaga, etc. to get a strong feel for the development process, learn what goes into an engine, etc.

My main concern is this: How applicable will any of this knowledge be to the modern game engines that we use today (Unity, Unreal, etc.) ? Should I just attempt to do this in Unity or Unreal instead of trying to utilize something retro?

kernex
Interested PSXDEV User
Interested PSXDEV User
Posts: 7
Joined: Mar 14, 2020
I am a: Software engineer & PSX enthusiast
PlayStation Model: SCPH-101
Location: Brazil

Post by kernex » May 11th, 2021, 4:25 am

In fact it is quite similar. I have no experience with Unity, but from what I saw on the internet, the development concept does not differ much.

Actually, the development process is much easier with Unity, for example. Today's game engine have a very high tool integration. High-level languages...

On PSX the development is low level. In fact, PSYQ is not a game engine, but a set of libraries that abstracts the hardware and allows you to make drawings on the screen.

On PSX to rotate an object you can do the follow:

MATRIX mtx;
SVECTOR ro = {0,0,2048};//180 degrees on Z axis;
GsDOBJ2 object;
...

GsGetLw(obj.coord2,&mtx);//calculate the world matrix for the object.
RotMatrix(&ro, &mtx);//set the rotation for the matrix.
object.coord2->coord = mtx;//update the object's matrix.
object.coord2->flg = 0;//indicates that object's matrix has been updated.
GsGetLs(obj.coord2,&mtx);//calculates the screen matrix for the object.
GsSetLsMatrix(&mtx);//set the new screen matrix for the GTE.


On Unity to rotate an object you can do the follow:

GameObject object;
...
object.transform.Rotate(0.0f, 0.0f, 180.0f, Space.Self);//Internally, Unity calculates the world and the screen matrices and apply to the object.

I hope I answered your question.

Post Reply

Who is online

Users browsing this forum: No registered users and 9 guests