Archive for the ‘RPG Engine’ Tag

I may just be getting used to this whole OpenGL thing…

I have been playing around with OpenGL ES 1.x for the iPhone, and really having a tough time with it considering I’m used to other ways of getting images to the screen. I started doing some research, and a whole lot of reading, and I think I might have come up with something!

Yep, you’ve guessed it… the basic framework of a tile engine is up and running! Oh sure things are a little different from my XNA tile engine, and I’ll even go as far as saying I’m a little uncomfortable with a few of the things that OpenGL does… but I’m learning. 

One of the major things I’m uneasy about is the world coordinate system used in OpenGL. I am not sure if I’m doing things correctly, but I’ve been used to the (0,0) point to be in the upper left corner of the screen, as you move down your Y value increases… and as you move to the right, the X value increases. OpenGL uses a different quadrant in the coordinate system, where (0,0) is now located in the bottom left corner of the screen, and up increases Y, right increases X. 

No worries though.. the VERY basic framework of my RPG engine has been ported over to ObjC and the iPhone. Step 2 is to expand on that basic framework and get a few key systems up and running (IE: the Tile Engine and other systems)

Objective-C can be frustrating

With simple things that I am used to, such as operator overloading, absent from Objective-C, i was forced to write all of my necessary framework structures in C. Not that its a bad thing, just took me a while to get everything working.

Anyway, status right now is going well.. I still don’t know what I’m doing with OpenGL ES, but at least I have a few of the fundimentals working:

- Screen management and GameScreen systems written in Obj-C
– Basic ‘Framework’ structures that I’m used to dealing with (IE: Vector2, Rectangle, RandomNumber) written in C
– Basic project organization complete, i can now write my games in either ObjC or C / C++

I guess its time to learn how to do things in OpenGL ES. Figure if I’m going to be making any sort of game, I’ll need to learn how to do textured quads and basic manipulation of a camera object.

ShackRPG: Engine Progress

These last few weeks, I’ve taken the opportunity to re-write my RPG Engine, and base it closer to the RPG Template engine released by Microsoft for the XNA platform. I did this for a few reasons, one of the primary reasons being I have not seen any RPGs to come out of that RPG Starter kit hosted on the XNA space. With a basic demo, and a little creativity, I wanted to show people what can be done with the tools given by Microsoft.

Current Map, Developed by EvilNando’s editor; http://xnafantasy.wordpress.com/

Fast forward a few weeks and I’ve pretty much got the tile engine done, and put together a few quick maps with a great map editor made by my buddy, and fellow XNA RPG Creator, EvilNando (Website located at http://xnafantasy.wordpress.com/ ) Changes to the Microsoft engine are plenty, but some of the notable ones include:

Modified content importers – I have not used the Microsoft importers, choosing to instead use just .xml files. Because of this, all methods of importing content from the content pipeline have been done using the System.XML namespace

Audio Engine – I really liked what Microsoft did with their audio engine, so I just tweaked it to include a “Playlist” system. Basically this is just a stack, and new music can be pushed onto or popped off of the stack at any given time. If there is no music in the stack (playlist) the general background music will play.

Collision System – I really, REALLY didn’t like the way Microsoft handled collision detection with tiles, mostly because it wasn’t compatible with my system at all ;) So instead I stripped out what they wrote, and modified my old version to handle collision in the new tile engine.

Screen Management – I used a modified version of my old screen management, and discarded Microsofts completly. It works for what I want it to do, and I made it a little more modified to handle Update Blocking and Draw Blocking on gamescreens. For example, You’ll notice in the video, the “Gameplay Screen” is the last one on the stack, but the first screen is the “Main Menu.” Obviously you wouldn’t want the Main Menu screen updating or drawing if it is being covered. Because of this, the main game screen blocks updates and draw calls to all lower screens.

Animation – Since my old animation method worked quite well, I just modified that to work with the new system. Nothing really new.

Video of the new engine in action:

There will be more updates soon, especially when I finish the next few stages of the engine (which includes NPCs, Quests, and Combat, which I will be taking an entirely new direction.. you’ll love it)

Questions, Comments, Opinions, feel free to drop me an email at CraigGiles9@yahoo.com.

Follow

Get every new post delivered to your Inbox.