Page 1 of 9

The Crawler of Dungeons™ [!RENAMED! AND !REBORN!]

Posted: Wed Apr 04, 2012 6:01 am
by Davidobot
Poll results:
Battle System= 4 votes :ultrahappy: "Done"
Looting Chests = 1 vote
Game Engine= 3 votes :megagrin: "Done"

Here is my first "proper" games in LÖVE 2D. It is going to be a simple dungeon crawler, with RPG battle scene.
For now it is just raw code and only the layout of the first four levels are done.

Things that are done:
Movement
Map files
Collision
Player direction
Enemies
Battle System
Game Engine

Not done:
More Monsters...
Misc...

Current Stages:
-->Pre-Alpha: Game Engine <--
Alpha: Graphics
Beta: Sound
After-Beta/Gold: Debugging

Change lists and everythind else avaliable on the website.
Website: http://barturov.co.uk/

Re: Dungeon Crawler

Posted: Wed Apr 04, 2012 6:42 am
by MiniDemonic
So far so good, waiting for the battle system :P

Re: Dungeon Crawler

Posted: Wed Apr 04, 2012 7:44 am
by kraftman
Nice :)

If you remove .lua from the requires then it will be 0.8 compatible:
Game Coded With Love.love
0.8
(5.73 KiB) Downloaded 284 times

Re: Dungeon Crawler

Posted: Wed Apr 04, 2012 10:24 am
by coffee
Hello, for now your dungeon crawler is doing well. Just a few regards:

1 - You are drawing character before map. That's ok for now with empty floor tiles. But when you have real floor map that will be draw over character. Better switch the draw order.

2 - Even that you may intend your tiles be always 32x32 is advisable you keep that value instead in variables for use (tile.w/tile.h for example) in draws and calculations. It will give to your engine a proper flexibility later. Also introduce in draws routine zoom (even that normal x1 scale) will make it also ready for map zooms or other draw effects. This could be done of course later but the sooner you think your code this way the better.
Resuming don't keep in your calculations/drawings "hard-coded" numbers like the 32 value of tile size.

3 - the "if gamestate=="lvl_1" then --Checks the lvl lvl_1() end" checking is better suitable/wise to be keep in update and not in draw.

Nice work and have a good development on this.

Re: Dungeon Crawler

Posted: Wed Apr 04, 2012 10:50 am
by Davidobot
coffee wrote:Hello, for now your dungeon crawler is doing well. Just a few regards:

1 - You are drawing character before map. That's ok for now with empty floor tiles. But when you have real floor map that will be draw over character. Better switch the draw order.

2 - Even that you may intend your tiles be always 32x32 is advisable you keep that value instead in variables for use (tile.w/tile.h for example) in draws and calculations. It will give to your engine a proper flexibility later. Also introduce in draws routine zoom (even that normal x1 scale) will make it also ready for map zooms or other draw effects. This could be done of course later but the sooner you think your code this way the better.
Resuming don't keep in your calculations/drawings "hard-coded" numbers like the 32 value of tile size.

3 - the "if gamestate=="lvl_1" then --Checks the lvl lvl_1() end" checking is better suitable/wise to be keep in update and not in draw.

Nice work and have a good development on this.
1-Done
3-Done
2-How?

Re: Dungeon Crawler

Posted: Wed Apr 04, 2012 11:09 am
by coffee
Davidobot wrote: 1-Done
3-Done
2-How?
You don't need do much. Just transfer it from love.draw to draw.update. It's the right place for that kind of code. (You won't "harm" left it in draw but it should do update stuff before draw).

Code: Select all

function love.update(dt)
	if gamestate=="lvl_1" then --Checks the lvl
		lvl_1()
	end
	if gamestate=="lvl_2" then
		lvl_2()
	end
---
You better design also a function to deal auto with multiple levels and also check when there is a level change. Because this way you in every cycle (either in update or draw) are loading again and again same level. Use some boolean to prevent loading level again. Turn it true when reaching a gate. Turn it false/nil after loading a level.

Re: Dungeon Crawler

Posted: Wed Apr 04, 2012 11:28 am
by veethree
This is good so far. I like the smooth player movement. If you plan on doing bigger levels i'd suggest using tiled, it's a general purpose tile map editor. There's a lib that can import the files from tiled. You can get it here.

Re: Dungeon Crawler

Posted: Wed Apr 04, 2012 11:42 am
by Davidobot
coffee wrote:
Davidobot wrote: 1-Done
3-Done
2-How?
You don't need do much. Just transfer it from love.draw to draw.update. It's the right place for that kind of code. (You won't "harm" left it in draw but it should do update stuff before draw).

Code: Select all

function love.update(dt)
	if gamestate=="lvl_1" then --Checks the lvl
		lvl_1()
	end
	if gamestate=="lvl_2" then
		lvl_2()
	end
---
You better design also a function to deal auto with multiple levels and also check when there is a level change. Because this way you in every cycle (either in update or draw) are loading again and again same level. Use some boolean to prevent loading level again. Turn it true when reaching a gate. Turn it false/nil after loading a level.
Thanks for the help, but I needed more of it on the 3rd statement/answer

Re: Dungeon Crawler

Posted: Wed Apr 04, 2012 11:43 am
by Davidobot
veethree wrote:This is good so far. I like the smooth player movement. If you plan on doing bigger levels i'd suggest using tiled, it's a general purpose tile map editor. There's a lib that can import the files from tiled. You can get it here.
Thanks but I prefer *for now* to make the levels manualy

Re: Dungeon Crawler

Posted: Wed Apr 04, 2012 11:53 am
by coffee
Davidobot wrote:
veethree wrote:This is good so far. I like the smooth player movement. If you plan on doing bigger levels i'd suggest using tiled, it's a general purpose tile map editor. There's a lib that can import the files from tiled. You can get it here.
Thanks but I prefer *for now* to make the levels manualy
I also think it's better for learning do your own engine than obey "tiled" rules (even that is a flexible engine).
I did quickly and dirtly a change to how your treat levels. I think its a better way. (you don't need to do that level checking and you auto load levels now). Sorry if I mess with something and didn't notice and of course it's only a quick sugestion. A lot can still be improved.