Temple of The Roguelike Forums

Development => Programming => Topic started by: Another_Mr_Lizard on January 31, 2013, 03:20:39 PM

Title: 7DRL Development Kit
Post by: Another_Mr_Lizard on January 31, 2013, 03:20:39 PM
I've started working on a framework that takes care of the boiler plate involved in getting a roguelike up and running.
It's a Lua based system that aims to take care of some of the really common tasks, with a simple and clean interface.

My plan is to cover following areas:

Tile sheet clipping and sprite rendering
Font rendering
Basic Audio
Keyboard / Mouse Input
Line of Sight
A Star pathfinding
Decent random number generation
Game object system
Event System
Basic GUI components (Button, console)

It's designed to be useful without overly forcing a particular game structure.
I'm also planning to write coherent reference documentation for all components of the framework and a tutorial detailing an ultra basic roguelike.

It's also designed to be accessible to beginners. There's nothing to build and no dependancies, just an executable that hosts lua scripts.
 
I think what would make this framework useful for a 7DRL above existing alternatives is that it's specifically focused on the kinds of implementation problems that arise when developing an RL. There is functionality that almost every single roguelike implements, and this framework aims to abstract it cleanly and allow people to focus on gameplay ideas in the limited time they have.

I'd like to hear any thoughts or suggestions anyone has.
Title: Re: 7DRL Development Kit
Post by: requerent on January 31, 2013, 08:11:00 PM
It'd be nice to have a library of map generation techniques with the ability to plug in generated map features.
Title: Re: 7DRL Development Kit
Post by: mrrstark on January 31, 2013, 09:35:02 PM
I'd like to see it, personally. Even if not for the 7DRL, the features you outline sound good, especially the sprite option for GFX not just ASCII, and if well documented, maybe with an example.

I'd also 2nd the request for various map generators.

Might be my excuse to learn lua.
Title: Re: 7DRL Development Kit
Post by: jocke the beast on January 31, 2013, 11:27:06 PM
It sounds very good to me. Exactly what I've been hoping (and praying) for a long time.
Please make it!
Title: Re: 7DRL Development Kit
Post by: Darren Grey on February 01, 2013, 05:14:41 AM
Uh, before you go to all that effort, have you seen the T-Engine? Lua-based, numerous customizable level generators, LOS, lots of options like hex, full graphics and sound support... You would be very hard pressed to rival it.
Title: Re: 7DRL Development Kit
Post by: kraflab on February 01, 2013, 05:32:11 AM
It seems like most of the areas you mention are generic system things, handled already and in better ways than you will ever achieve.  I just don't think an extra level of abstraction accomplishes anything since most modern system interfaces are so simple now anyway (i.e. sfml).  As far as the roguelike features, as Darren mentions we already have engines that do that as well.  Personally I think using any kind of engine like this is very restrictive and inhibits the learning process.
Title: Re: 7DRL Development Kit
Post by: TheCreator on February 01, 2013, 07:21:00 AM
Uh, before you go to all that effort, have you seen the T-Engine? Lua-based, numerous customizable level generators, LOS, lots of options like hex, full graphics and sound support... You would be very hard pressed to rival it.

Yeah. Let's give up everything we do because somebody has already done it. We would be still living in caves hunting polar bears if everyone kept thinking like this.
Title: Re: 7DRL Development Kit
Post by: AgingMinotaur on February 01, 2013, 08:33:56 AM
living in caves hunting polar bears
Sounds awesome, but … hasn't someone already done that?

As always,
Minotauros
Title: Re: 7DRL Development Kit
Post by: Another_Mr_Lizard on February 01, 2013, 10:52:04 AM
Uh, before you go to all that effort, have you seen the T-Engine? Lua-based, numerous customizable level generators, LOS, lots of options like hex, full graphics and sound support... You would be very hard pressed to rival it.

The T-Engine is really more of a full blown roguelike development system. The idea behind this project is that everything is really quick to learn and use, rather than being all encompassing. It's about the simplest possible abstractions rather than the most functional.
Also, I want to make a nice API for my own 7DRL attempts, so I might as well go the extra mile and polish it into something that other people can use.
Title: Re: 7DRL Development Kit
Post by: Another_Mr_Lizard on February 01, 2013, 11:30:58 AM
It seems like most of the areas you mention are generic system things, handled already and in better ways than you will ever achieve.  I just don't think an extra level of abstraction accomplishes anything since most modern system interfaces are so simple now anyway (i.e. sfml).  As far as the roguelike features, as Darren mentions we already have engines that do that as well.  Personally I think using any kind of engine like this is very restrictive and inhibits the learning process.

Cross-platform generic system functionality has indeed been done well by SDL, glfw, smfl etc, and one of those will be used for window context and input in the back-end part of the project.
Lua itself exists at higher level of abstraction than any  of that. If anything, this project is about providing lower level functionality in Lua.
I don't agree that abstraction is harmful for beginners. If a beginner wants to draw an image on the screen in their first game project, I don't think they should have to go read the PNG specification, integrate the FreeImage library, and learn OpenGL.
Title: Re: 7DRL Development Kit
Post by: kraflab on February 01, 2013, 10:40:29 PM
If a beginner wants to draw an image on the screen in their first game project, I don't think they should have to go read the PNG specification, integrate the FreeImage library, and learn OpenGL.

And they don't have to because that has ALREADY been abstracted away for them, unless they're using something outdated.

I.E. in blitzmax you could write:

Code: [Select]
Graphics 800,600

image=loadimage("image.png")
drawimage image,0,0

flip

waitkey

That is the entire code.  Seems pretty simple to me...
Title: Re: 7DRL Development Kit
Post by: Omnomnom on February 02, 2013, 01:14:32 AM
Uh, before you go to all that effort, have you seen the T-Engine? Lua-based, numerous customizable level generators, LOS, lots of options like hex, full graphics and sound support... You would be very hard pressed to rival it.

Yeah. Let's give up everything we do because somebody has already done it. We would be still living in caves hunting polar bears if everyone kept thinking like this.

I think Darren is just warning against reinventing the wheel.
Title: Re: 7DRL Development Kit
Post by: Another_Mr_Lizard on February 02, 2013, 01:56:05 AM
If nobody reinvented the wheel, we'd be rolling around on logs like the flintstones ;)
Title: Re: 7DRL Development Kit
Post by: mrrstark on February 02, 2013, 03:45:43 AM
Make it in HAXE/NME then we can get a good framework portable to all platforms with minimal effort!
Title: Re: 7DRL Development Kit
Post by: Darren Grey on February 02, 2013, 04:30:30 AM
Not trying to put you off or anything, but you should definitely be aware of a major project in the same area. And it's open source, so you may well want to just fork it and throw a better development interface on top - would save you a lot of time with SDL code, etc. Refinement is better than reinvention, or easier at least.

In general open roguelike engines are oft tried and rarely succeed, so they should be approached with care. To date only Band code, libtcod and the T-Engine have been successful at spawning numerous roguelikes from different devs. What you're suggesting can be done, but may take years of hard work, so be prepared for that.
Title: Re: 7DRL Development Kit
Post by: Krice on February 02, 2013, 12:27:04 PM
What you're suggesting can be done, but may take years of hard work, so be prepared for that.

It may be fun too if you like engine/gui programming. Anything can be done better and I think there is room for more generic type of engines or frameworks. The problem with these is always how to make it generic enough and how people can use it in their own projects the easiest possible way. If you look at gui libraries most of them are either too simple or too complex, or their syntax sucks, so we really don't live in a perfect world.
Title: Re: 7DRL Development Kit
Post by: Slash on February 02, 2013, 12:40:37 PM
I'd like to hear any thoughts or suggestions anyone has.

Don't make an engine.

Focus on making a game with a well defined architecture, two layers of abstraction. The lower layer you can in the future develop into an engine, the upper layer(s) will propel forward its development.