Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411475 Posts in 69369 Topics- by 58424 Members - Latest Member: FlyingFreeStudios

April 23, 2024, 02:11:00 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsDeveloperTechnical (Moderator: ThemsAllTook)Retro Game System
Pages: [1] 2
Print
Author Topic: Retro Game System  (Read 8267 times)
Ivan
Owl Country
Level 10
*


alright, let's see what we can see


View Profile
« on: April 25, 2008, 08:38:01 AM »

Hello,

This is a project I've been working on for the past few months. It's a C API for quick and easy creation of simple 2d games with a heavy focus on tilemap-based platformers. My mentality with making it was a sort of Game Maker for C Smiley It includes an editor where you can edit alot of the assets and then put them together with just a few lines of code.

I wrote Tiny Platypus Pimps with it and the source for that is on the project page as well. Im going to use this myself for a few upcoming games and this will be the engine for U-Head as well.

It's a work in progress still, so this is an alpha release as there are some bugs still (mostly in the editor).

I made an Xcode framework for OSX and vc9 and mingw sdks for windows. Let me know if you experience any problems with them if you check it out. You're going to need the SDL SDK as well.

I am generating some documentation for it right now and writing up a little tutorial on how to use it.

You can get it all at:

http://librgs.googlecode.com/

Here's a screenshot of the editor:

http://www.ivansafrin.com/crap3/rgsedit_final.png

Here's a brief feature list:

General Features:

   * C99 (should be usable from C++, but really designed for C)
   * Crossplatform (OSX,Windows and Linux) (DS support coming later)
   * API-independent, tho currently reliant on SDL
   * Small and fast

Editor Features:
   
   * Sprite animation/bounding box editing.
   * Visual tilemap editing (place entities, define collision and attribute tiles in layers).
   * Single tile or brush tile editing.
   * Arbitrary game settings: attributes, entity and brush presets can be saved to files.
   * Bitmap to tilemap import: converts a bitmap to unique tiles of arbitrary size, then creates a map file from it.

Graphics Features:

   * All surfaces are paletted 8-bit
   * Load palettes from .pal files (editable in Photoshop)
   * Loads sprites from custom sprite file format editable in the editor
   * Loads static graphics from custom image format (convertable in the editor)
   * Optional NTSC emulator filter. (via Blargg's NTSC lib)
   * Arbitrary screen size (initialized with two resolutions, one actual and one screen).
   * Automatic rendering queue based on screen layers
   * Easy text rendering with two built-in bitmap fonts

Sound Features:

   * Plays music from NSF (Nintendo Sound Format) files. (via Festalon)
   * Plays sounds from the native SFXR format (sfs) (via Dr. Petter's SFXR)

Tilemap Features:
   
   * Automatic entity to tilemap and entity to entity collision detection and gravity
   * Atomatic entity loading (in the code predefine the sprites and update/init functions for each entity type, then just load the .map file)
   * Scrolling support + follow entity.
   * Arbitrary tile size
   * Tile data and tile graphics loaded from separate files.

Basic UI Features:

   * Buttons
   * Scrollbars
   * Text Input
   * Select lists
   

RGS does NOT compile in linux right now. I'm going to check out why this weekend.

Aside from bugfixes, i'm planning on making Python bindings for it and maybe a little UI for the python so you can do everything in the editor.

Cheers!
« Last Edit: April 25, 2008, 10:07:23 AM by toastie » Logged

http://polycode.org/ - Free, cross-platform, open-source engine.
jcromartie
Level 0
***


View Profile
« Reply #1 on: April 25, 2008, 11:51:56 AM »

This looks amazing.  The OS X build isn't quite right, though.  Your framework has its install path set up incorrectly.  Let me know if you're not familiar with the process.  I've been there before and it's kind of tricky.
Logged
Ivan
Owl Country
Level 10
*


alright, let's see what we can see


View Profile
« Reply #2 on: April 25, 2008, 11:54:34 AM »

Hmmm. I've never distributed a framework before, but i've used install_name_tool on stuff with incorrect pathnames before. The old SDL framework had this problem i think. If you want to help me fix it, that would be rad Smiley
Logged

http://polycode.org/ - Free, cross-platform, open-source engine.
Hideous
That's cool.
Level 10
*****


3D models are the best


View Profile WWW
« Reply #3 on: April 25, 2008, 02:48:37 PM »

YES YES YES

I've been waiting for this. Awesome.

EDIT: Python coming?! I love you.
« Last Edit: April 25, 2008, 02:50:31 PM by Hideous » Logged

Akhel
Level 10
*****



View Profile
« Reply #4 on: April 25, 2008, 03:28:23 PM »

Awesome! Can't wait for the Python bindings. Grin
Logged
dustin
Level 6
*


View Profile
« Reply #5 on: April 25, 2008, 05:03:57 PM »

sweet I'll try it out for sure, I love C!
Logged
moi
Level 10
*****


DILF SANTA


View Profile WWW
« Reply #6 on: April 25, 2008, 06:56:39 PM »

AWESOME!
Logged

subsystems   subsystems   subsystems
Hideous
That's cool.
Level 10
*****


3D models are the best


View Profile WWW
« Reply #7 on: April 26, 2008, 08:07:12 AM »

Until I understand how to use this, I'm not using it! Tongue

Please get tutorials and python bindings up Tongue
Logged

moi
Level 10
*****


DILF SANTA


View Profile WWW
« Reply #8 on: April 26, 2008, 08:21:52 AM »

Yeah it needs tutorial.
I did download the TPP source but it's a bit too complex
It needs a very simple starting tutorial with infos on just how to display a window, set resolution, etc... Tongue
Logged

subsystems   subsystems   subsystems
Ivan
Owl Country
Level 10
*


alright, let's see what we can see


View Profile
« Reply #9 on: April 26, 2008, 08:47:46 AM »

Yep. I just finished writing my experimental documentation tool, so i should finish commenting stuff later today and then i'll post it up along with a simple tutorial.
Logged

http://polycode.org/ - Free, cross-platform, open-source engine.
Ivan
Owl Country
Level 10
*


alright, let's see what we can see


View Profile
« Reply #10 on: April 26, 2008, 08:34:42 PM »


http://www.ivansafrin.com/rgs/nanodoc/

First output from my custom doc tool. Need to finish documenting every function though still.
Logged

http://polycode.org/ - Free, cross-platform, open-source engine.
Hideous
That's cool.
Level 10
*****


3D models are the best


View Profile WWW
« Reply #11 on: April 27, 2008, 04:26:53 AM »

Fuck. I think I need to learn C.
Logged

dustin
Level 6
*


View Profile
« Reply #12 on: April 27, 2008, 09:14:34 AM »

I'm a bit confused on the process I'm supposed to go through using this.  I've opened the visual sound editor but can't seem to get that visual editor open (probably has ssomething to do with the framework path like mentioned? I'm on osx).  Is that were I do the code?  Or do I write code somewhere else, then compile, then open up that editor?
Logged
Hideous
That's cool.
Level 10
*****


3D models are the best


View Profile WWW
« Reply #13 on: April 28, 2008, 02:17:08 AM »

http://www.cython.org/ ?
Logged

Eclipse
Level 10
*****


0xDEADC0DE


View Profile WWW
« Reply #14 on: May 07, 2008, 06:07:43 AM »

oh my...

please add support for gp2x  Shocked it's a linux-based handheld, and it have also SDL support
Logged

<Powergloved_Andy> I once fapped to Dora the Explorer
coderneedsfood
Level 0
**


View Profile
« Reply #15 on: June 04, 2008, 05:12:53 PM »

how about PSP also ? how heavy does it lean on SDL ?
i might hack at this myself

Logged
Hideous
That's cool.
Level 10
*****


3D models are the best


View Profile WWW
« Reply #16 on: July 05, 2008, 01:27:43 AM »

Alright, thanks to increased skills in C and C++, I've managed to install this. I think. Anyway, I'm still not entirely sure how to use it (i figured out #include "rgs.h" and RGS_Init(256, 224, 1, 1, RGS_NTSC);, but that's as far as I've gotten). Any help?
Logged

Ryan
Level 1
*



View Profile
« Reply #17 on: July 05, 2008, 05:11:07 PM »

Ivan would be the best to give advice, but for now I'd look at the source to Tiny Platypus Pimps, particularly main.c. Start with the main() function and see what's being called etc, should give you a good idea. The main function is on line 833 and can be found here:

http://code.google.com/p/librgs/source/browse/trunk/games/tpp/main.c

You'll want to start with just having a window. Then make a sprite, and add the static sprite to the game. After that's done, add movement with the arrow keys. Keep solving little problems and eventually you'll get all the basics down to make a game. Beer!
Logged
Hideous
That's cool.
Level 10
*****


3D models are the best


View Profile WWW
« Reply #18 on: July 06, 2008, 12:35:20 AM »

Yeah, the problem is that toastie has some weird tools for this system, and I don't really know how to make the sprites themselves.
Logged

Ivan
Owl Country
Level 10
*


alright, let's see what we can see


View Profile
« Reply #19 on: July 06, 2008, 01:06:45 AM »

Hey. I'll write up a little tutorial for you as soon as i have some more free time.
Logged

http://polycode.org/ - Free, cross-platform, open-source engine.
Pages: [1] 2
Print
Jump to:  

Theme orange-lt created by panic