Homebrew Fireworlds - A DS platformer/puzzle game. (DS Entry)

BigLord

Well-Known Member
Member
Joined
Sep 18, 2009
Messages
134
Trophies
1
XP
112
Country
I surely hope so! It'll be great, right, right!?
biggrin.gif
 

Dirbaio

Well-Known Member
OP
Member
Joined
Sep 26, 2010
Messages
158
Trophies
0
Age
111
Location
Spain
Website
dirbaio.net
XP
108
Country
Yeah, I hope so!
Some stuff I've been planning for FW2.

- An adventure-like game mode. Maybe with prettier graphics, a stronger story, longer levels, powerups, enemies, bosses...
- Time-attack mode, with online leaderboards.
- Better physics. I'll use the Box2D library if I can get it working.
 

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,749
Trophies
4
Age
46
Location
Engine room, learning
XP
15,662
Country
France
Annnnd Tadaaah !

mockup01.png

Done in Photohop, not an actual program.

G= gravity element
B = Block element (ice, iron box, etc.) (select the desired block element from the drop-down menu in the 2nd toolbar, or edit the Block settings later).

It would be great if each element had an element_ID and their own settings.
This way, gates could be any color (not green or blue only), and will have an Element_ID to link a switch and gate together (maybe multiple links at the same time?)



Element examples:

Music element:
Element_ID: Music_01
Value: Fireworld Theme

Gate blocks:
Element: Gate_05 (multiple wall blocks could have the same ID to act as a gate at the same time)


Switch:
Target: Music_01
Set value: (and select in the sub-menu a list of possible theme)
Set time: infinite

Another Switch:
Target: Gavity_01
Set value: Gravity point upward
Timer: 5sec

Another Switch:
Target: Gate_05
set value: grant access
Set timer: 0sec (need to be pressed, when quiting the switch then the gates go back to it's initial value: block access)

Drag/drop element to move them.
Right-click on a wall element and select Edit-physics to move a quad patch corner coordinates.

Wall could have different colors (set a palette first for the current level), or textures.
The edit menu could be used to change the wall type (normal, lava, etc.) without deleting and recreating another one.

Maybe use 2 layers (BG/FG) to edit the background (or load a static image for background).


@Dirbaio: It's only some ideas for improvement.
Maybe you already have another ideas, but I think an element_ID system will be very flexible to build event element for an Adventure game.

Edit:
I can't compile revision03 (I didn't try r02), with devkitARM34. maybe I'm missing a library?

fireworlds-game/arm7/source/main.cpp: In function 'int main()':
fireworlds-game/arm7/source/main.cpp:77:14: error: 'BUS_CLOCK' was not declared in this scope
 

Dirbaio

Well-Known Member
OP
Member
Joined
Sep 26, 2010
Messages
158
Trophies
0
Age
111
Location
Spain
Website
dirbaio.net
XP
108
Country
Ah, libnds 1.5.2 has probably renamed BUS_CLOCK again.
frown.gif


I'm still using 1.5.0 because I didn't notice 1.5.2 was out.
I've just updated, I'll try to fix it and I will commit a new rev
smile.gif


Anyways, not much has changed. I added a pause menu, changed restart level from Y to Select (I saw some friends frustrated because were always hitting button Y without wanting to), and added a new variation of the main tune for the ending credits.

Fireworlds 2 will be mostly made from scratch, since I have to replace the whole physics engine with Box2D. That, if I can make it work. I've tried all from here and also did my own port, and ALL the box2D-nds versions were crashing.

I'm now trying to debug it. Anyways, any help on this would be REALLY appreciated!

EDIT: It does compile well on 1.5.2. Then it's your libnds installation which is outdated. Some older libnds had BUS_CLOCK named TIMER_HZ instead. Either change BUS_CLOCK to TIMER_HZ, or update your devkitPro. I recommend the latter. Fireworlds will probably break with old libnds's.

EDIT2: I just tracked down the crash. See spoiler below:
I've taken Box2D's Hello World example, and added a text Hello World in the main.
Even though NO Box2D's code is being run, just declaring a world makes the ROM crash.
Also, not shown in the pics, but it crashes when running consoleDemoInit(); Why a line that is not executed causes this change? I have no idea.

(Sorry for the huge screenshots)
good.jpg


Aaand:
bad.jpg


WHY!!!???
 

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,749
Trophies
4
Age
46
Location
Engine room, learning
XP
15,662
Country
France
Ah, you are right, I updated only devkitARM without updating libnds.

I can't help you with Box2D debugging, sorry
frown.gif

I think you'll find help only on their forum, or finding another developer who used it successfully.
 

Dirbaio

Well-Known Member
OP
Member
Joined
Sep 26, 2010
Messages
158
Trophies
0
Age
111
Location
Spain
Website
dirbaio.net
XP
108
Country
Yay! I got it!

It was a reaally silly thing: Declaring the b2World like that makes it be allocated into the stack. Aaand... a b2World instance is around 100kb big, while the stack on the NDS is just a little less than 16kb.
So allocating it in main memory with new worked.

I'm working on making Fireworlds work with it
smile.gif

It's a bit hard because I have to trash half of the engine, but it's looking good.
I'll post it in Google Code when I have a playable prototype.
 

Arisotura

rise of melonism
Member
Joined
Dec 5, 2009
Messages
839
Trophies
1
Age
30
Location
center of the Sun
Website
kuribo64.net
XP
2,498
Country
France
I tried this game recently, it's fucking bloody awesome. And the DS's tiny 3D engine supports that, man I'm pretty damn sure one could make awesome things on the 3DS.

However, there are some little issues , for example at the end of level 24, you end up with 10 of 9 energy bits... but that's not much really.
 

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,749
Trophies
4
Age
46
Location
Engine room, learning
XP
15,662
Country
France
10 out of 9?
I didn't found that bug.
How could you pick more energies than the level's count? I'll have to try it!


Good work Dirbaio with finding the problem with box2d memory.
Good luck with the future beta/release.
 

Dirbaio

Well-Known Member
OP
Member
Joined
Sep 26, 2010
Messages
158
Trophies
0
Age
111
Location
Spain
Website
dirbaio.net
XP
108
Country
I did know about that bug, I think it was reported here earlier.
Sometimes, an energy is counted twice I dunno why. I think it's because you collide with the energy and the energy collides with you, the same frame. That can happen because "dead" actors are not removed until the end of frame... Yeah, I screwed up hard in the collision stuff.

Anyways, it's not worth fixing now because all the collisions stuff is now trashed, in favour of Box2D.

BTW, here's a really simple box2D test: http://dirbaio.net/d/fireworlds-box2d.nds
Tap to create a box. Start to delete everything. R to toggle debug screen.
It needs the data folder from fireworlds 1 to be present, sorry
tongue.gif
 

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,749
Trophies
4
Age
46
Location
Engine room, learning
XP
15,662
Country
France
I played with the boxes a little, collision and gravity is good. Maybe a little slow when there's too many on screen (or on the entire level?).
I went up to CPU 1000%
wacko.gif


Inversing gravity or moving blocks with stylus would have been great, but it's only the first beta.
Let us know if you need other things being tested.
 

Dirbaio

Well-Known Member
OP
Member
Joined
Sep 26, 2010
Messages
158
Trophies
0
Age
111
Location
Spain
Website
dirbaio.net
XP
108
Country
Yeah, it was only a test, so I didn't add many things.
I'm now working on getting the actual game work with Box2D. It's looking great so far.

As you say, the CPU usage is a bit heavy, but I've found some ways to optimize it, like disabling asserts (-DNDEBUG flag) and disabling Box2D continuous physics
smile.gif


Still, it gets slow with lots of objects, so we won't be able to add lots of objects to the level. Anyways, objects that are not moving are set to "sleep state" so that they don't consume CPU time. That way, the limit is on moving objects and not on total objects. A cool Box2D feature.

I also did a small test to make the game run at 30fps instead of 60fps, to get double the CPU time for each frame. but it looks UGLY as hell, so it's out of question.
 

Foxi4

Endless Trash
Global Moderator
Joined
Sep 13, 2009
Messages
30,825
Trophies
3
Location
Gaming Grotto
XP
29,851
Country
Poland
Just watched the trailer and... wow - those particle effects (those are particles, right? Not some sprite magic?). It really looks amazing, especially considering the platform this was written for, I'm loving it, congratulations on a job well done!
 

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,749
Trophies
4
Age
46
Location
Engine room, learning
XP
15,662
Country
France
yeah they are particles and he said he did it in ASM to achieve this result.
The game is great, and has good ideas on the game physics. it's also the only homebrew I complete!
It has a level editor too, (even if he said it was the buggy version, it's working fine).

He requested that Filetrip removes the file and let the users download it from his website only (though, googlecode doesn't have it so the file is not available anymore to public. But you can always compile it)
 

Dirbaio

Well-Known Member
OP
Member
Joined
Sep 26, 2010
Messages
158
Trophies
0
Age
111
Location
Spain
Website
dirbaio.net
XP
108
Country
Totally my fault :(
I thought I had a download on dirbaio.net, but I was wrong. Sorry!

I will upload it again tomorrow.

Also I will profit from the occasion to fix some bugs and polish some things. Some levels have silly bugs. Also Level 31 lags badly. I'll try to fix the crash when opening and closing the DS. (It's a buffer overflow in ASLib...)

And some new levels and things, maybe? Who knows ;)
 
  • Like
Reactions: Rydian

Dirbaio

Well-Known Member
OP
Member
Joined
Sep 26, 2010
Messages
158
Trophies
0
Age
111
Location
Spain
Website
dirbaio.net
XP
108
Country
Download of version 1.1: http://dirbaio.net/d/fireworlds.zip (Please do not mirror.)
What's New:
- Fixed lag in all levels.
- Improved all the levels: Fixed unintended shortcuts and made those very-frustrating-levels less frustrating.
- Reworked the appearance of the fireball. Now it has a more definite shape and looks more like fire!
- Some random graphical improvements/fixes
- It now has a pause screen!

Here's a screenshot of how the fireball looks now!
screen-12-10-31-23-17-05.png

And another one.
screen-12-10-31-23-20-00.png


Also I've moved the source code repo to GitHub. (Because git is better!)
https://github.com/Dirbaio/Fireworlds

No new content or levels for now, because I wanted to upload the thing today, and I don't have more time. But I'll make an update! Suggestions are welcome.

Also, could this thread be moved to the DS homebrew forum? I have a feeling nooone looks at this forum. Thanks!
 

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,749
Trophies
4
Age
46
Location
Engine room, learning
XP
15,662
Country
France
Thank you for the update, I'll try it when I have some time.

I don't know about moving it to DS homebrew, as it was part of the competition, we may keep it in a Competition forum along with other competitions we did/will do.
I'll see if we can put it both Competition section and in the DS homebrew section too, maybe the new forum allow virtual links. I'll have to check new features.
For now it's moved to DS homebrew.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    SylverReZ @ SylverReZ: https://www.youtube.com/watch?v=8ptLqnNMcQk