Skip to main content
gamedev.net
🔒 Locked

Beginners Programming Library

Started by rolliebollox Sep 25, 2010 at 9:51 AM 1 replies 650+ views
Original Post
rolliebollox
rolliebollox
Hello to the gamedev community. I've been working on a game library for beginners that basically allows you to (more or less) dive right into game programming by learning game programming with game programming as opposed to via tutorial or whatever. Ideally there would be an entire section of tutelary games which teach conceptual fundamentals and a lot more written documentation. But this project is only a few months old and has tons of examples which are all nicely stashed in a GUI driven click around demo-within-a-demo.

So far it has a 2d polygon library, some 3d stuff, a 3d sprite class which I think is pretty cool, a Sprite Engine for animations, and just a bunch of neat demos and eye candy. I thought this would be a good place to post a link. The library is 100% free to use, and reproduce, the copyright of course is mine, though if you somehow made money with a game you made with it I would not begrudge you a dime, in fact I'd applaud you and post a link.

It's written in 100% FreeBASIC, which if you're not aware, is a great mixture of old QB and C++, so it won't destroy your ability to program or give you any bad habits that you have to unlearn. Basically, it's a powerful tool for both developers and students, and I built this library using this language as an enormous fan of it.

The link is here: https://sourceforge.net/projects/flatlandgamepro/

Captain P
Captain P
I only took a quick look, but I noticed a couple of crashes and various buttons not working in the demo/sandbox application. I also noticed how the download is a big package, containing a wide variety of stuff, but what pieces are actually useful to build a game with, and what stuff is merely for demonstration purposes? In other words, is there a single 'library' download - and is there an API documentation available?


Oh, I did take a look at some code, and while my FreeBasic-fu is pretty much non-existent (apparently QBasic is not QuickBasic, or it's been so long ago that I've completely forgotten what syntax it had), I did notice a bit of an oddball: the Point2D class relying on a SCREEN_CENTER global variable. But global variables are a bad thing - what if you're working with multiple screens with different sizes or resolutions? Just thought I'd point that out, given your 'won't (...) give you any bad habits that you have to unlearn' statement. ;)
rolliebollox
rolliebollox
Oh, I did take a look at some code, and while my FreeBasic-fu is pretty much non-existent (apparently QBasic is not QuickBasic, or it's been so long ago that I've completely forgotten what syntax it had), I did notice a bit of an oddball: the Point2D class relying on a SCREEN_CENTER global variable. But global variables are a bad thing - what if you're working with multiple screens with different sizes or resolutions? Just thought I'd point that out, given your 'won't (...) give you any bad habits that you have to unlearn' statement. ;)

~~~

The crashes... I just noticed that too, I'm in the middle of switching my rendering routines over to Cairo so things are a mess, GUI has gone haywire etc... But the games work, I'm trying to document the library via Google Code Wiki. I'm also working on the Map and dynamically adding objects to the map which is causing me to rewire Constructors... This project will stabilize by next release, and you won't have this level of abomination in final product. *shame*

The global is an optimization, you can access the screen coordinates through a property called ScreenCoords. However, in FB function calls are slighty slower so to have that ability comes in handy especially when you're dealing with 100k points that are supposed to twinkle like stars and whatnot... It's an FB thing, and Global variables are maybe anti-academic but are not (pragmatically) bad.

In FB multiple screens (with different resolutions) would only be possible via direct API calls to Windows/Linux, ie: if you could do that, my library isn't going to interest you.

What my libray does well is make vector style and sprite based games, handle collision, user input, drawing etc... and soon those crappy text based buttons will be replaced by Cairo Rendered stuff.

I didn't realize how many crashes there were. They have to do with programs that are chained through the sandbox. They all run fine on there own, but crash because of parameter differences.

The Sandbox will eventually be an interactive tutorial for the concepts that it introduces.

At any rate, I learned to program by farting around in other people's code, and then make my own. So I figure maybe someone else would find it useful too.

At any rate, I remade Asteroids and I'm remaking Demon Attack, and I have an ongoing Top Down Space game I'm making with it... And it also has a Random Sentence Generator. I dunno. I've never put a project like this together, and I'm not a professional programmer.

But you're right, documentation would be good. Thanks for taking a look.



One thing I forgot to mention. There are a lot of GPL Sprites and some sounds for playing around with, which bloats the size.

I'm of the opinion that it's better to have a lot of sprites and not need them, than to need a lot of sprites and not have them.



[Edited by - rolliebollox on September 25, 2010 3:46:31 PM]

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.