123
-=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- (c) WidthPadding Industries 1987 0|715|0 -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=-
Socoder -> Handheld Coding -> Heading Back to DS [RetroRaider]

Mon, 01 Jul 2013, 04:38
Jayenkai
I'm actually surprised that this went as smoothly as it did!


Considering my DS hasn't been switched on for a good couple of years, and that my MicroSD Reader was INSANELY full of dust.. (you wouldn't believe the levels of dust that have gathered in the far reaches of my bedroom.. I really need to get into gear, and sort the thing out!!)

Add to that, the fact that I'm now using a Laptop with Windows 7 on it, and also didn't want to disrupt my Monkey Dev stuff..
GAH!

.. But.. no.. no issues..
not one..

Heck, the DS even switched on, bright and fully responsive! Considering it's not seen a plug in the past couple of years, never mind being switched on, I was kind of surprised that the battery is still retaining a full charge. Whether the charge lasts a full expected lifetime is yet to be seen, but for the moment it's doing it's job.

The SD Reader took a couple of NES-Style blows before it read the card properly, but that's to be expected given the mountain of dust it was rescued from. .. and, for the record, NO, I'm not usually that messy, I've just been somewhat out of sorts for the past year!! My bedroom usage has been "Bed, Chair, Occasional Mac", as opposed to "Bed, Chair, DVD Collection, Mac, PC, Desk, Bigger Chair, Magazines, Printer, Scanner, Consoles, TV, etc."


... anyway..
Everything seems to be working.
The above image is simply a tilemap test, and nothing more.
I'll be doing a few more tests before delving deeper into this new-old world of dev, but for the meantime at least, the first test is a good sign.
Woot!!

-=-=-
''Load, Next List!''
Mon, 01 Jul 2013, 06:14
Jayenkai

Level Data Thinking Time


Oooh, a puzzle!!
Been a long while since I last thought about proper level compression, and memory allocation, and things like that!!

OK, Here's what I'm thinking..
..
Each screen contains a top and bottom half, and in there is 32 tile-columns.. Lets say you can only have 16 objects per room, so we can have each object be 2 tiles across (16 pixels)
Each object will be one byte, and have a second byte for a parameter, giving us 32 bytes per part, or 64 bytes per screen.
Add to that offsets, and background style parameters for each layer, we'll bulk it up to 80 bytes per "room".
Next we want a decent amount of questing area, but it'd also be nice to be able to keep track of it on some sort of map.
Again, thinking in DS terms, I'm considering splitting the screen into 4x3 tiles (32x24 pixels) and having each tile be a room.. light it up as we go along, and add little icons for gates and keys and switches and whatever else, as you find 'em.

So, 32x24 tiles on the DS screen means we can fit a map of 8x8 onto the screen.
If I make it 7x7, instead, it means I can put a nice "Map Screen" border around it, as well as having a specific Middle Room.

So, 7x7 rooms = 49 rooms, x 80 bytes per room = 3,920 bytes for a complete level... pre-compression..

.. Yeah, I'm thinking that could actually work!
Bulk it up to 4096, and it leaves enough room for a short title/author thing, along with a checksum, too.

Blimey!

-=-=-
''Load, Next List!''
Mon, 01 Jul 2013, 06:38
Jayenkai


Unimaginative, and totally inactive, Map Screen!!! Woohoo!!

-=-=-
''Load, Next List!''
Mon, 01 Jul 2013, 07:34
rockford
Woot!

I really must have another crack at developing for DS. I got some images up on the screen once and that was about it.
Tue, 02 Jul 2013, 08:47
Jayenkai
Today I took a crack at formatting some of that level data.
I've already hit a couple of stumbling blocks, namely that "Dead Animals" and other permanent-features is going to be tricky.
I think I'm going to have to keep two copies of the level data in memory simultaneously.
Basically, if you walk out of a room, and then back in, all the objects should reset, so that animals start from their origins.. except for animals you've killed, gates you've unlocked, items you've collected, and so forth. Those should stay dead/unlocked/collected
.. So, yeah.. I think I'm going to need a "Start" room collection, alongside a "Current" collection.
Bloody awkward setup.. grrr!!


-=-=-
''Load, Next List!''
Tue, 02 Jul 2013, 12:52
spinal
Why not just have one copy of the level and once an enemy has dies, change its value in the map to that of a dead sprite and perhaps a distance to its dead location. I assume that could be done in a single byte. Then when refreshing the level, just check if the enemy is dead or not before triggering all its reset crap?

-=-=-
Check out my excellent homepage!
Tue, 02 Jul 2013, 14:59
Jayenkai
Yeah, a single byte is indeed all it'll need. I'm overthinking my numbers again!! But considering I've only the .. What was it.. 4Mb..? Limit of DS Homebrew, I'm probably going in the right direction, trying to keep everything down as simple as possible.

.... Although 4mb is quite a lot!

Just thinking out loud, here., lots more to come.

-=-=-
''Load, Next List!''
Tue, 02 Jul 2013, 18:10
Jayenkai


-=-=-
''Load, Next List!''
Wed, 03 Jul 2013, 01:39
spinal
Remember, thats 4mb including the binary, probably a little less as your cards loader has to sit in ram also (i think).

-=-=-
Check out my excellent homepage!
Sat, 06 Jul 2013, 09:55
Jayenkai
Eeek, that's a lot of sprite data!!
Sprites.c is a whopping 405Kb!

.. Shouldn't be too much of a problem, though, as I'm managing to cram a crapload of sprites into that single spritesheet.
.. I hope!!

Ah well..
Anyhoo, here's two screenshots..
The Background isn't exact, since it's currently set to be at a random X-Offset on the Monkey Edition, but other than that, the two are identical, even down to the 64,52 positioning of the character sprite.




So.. Yeah.. Coming along.. One step at a time!!

-=-=-
''Load, Next List!''
Sun, 07 Jul 2013, 14:26
Jayenkai
Just to double check that things can be exactly identical on both versions, I made a little test spawler thing..


There's 96 sprites on the screen, there. In actual gameplay, you'll probably only ever need about 10 or so, at a time, but.. nice to know it works smoothly with so many!!

As far as testing goes, those two look pretty damn identical, to me!

-=-=-
''Load, Next List!''
Tue, 09 Jul 2013, 11:52
Jayenkai
I really need to get building some sort of test level!!
At the moment, my test level is random numbers, and although I can reproduce the same random screens on both editions, I'm still at a loss as to whether I'm displaying the correct random garbled chaos, or a completely different set of random garbled chaos..

For about an hour, or so, today I actually started work on version 3, a BlitzMax edition with load/save abilities, before going "WTF am I doing!?" And scrapping the thing!!
If anything, an editor should be easy to do in the DS version, so I think I'll aim for that..

-=-=-
''Load, Next List!''
Wed, 10 Jul 2013, 08:55
Jayenkai


Note to self : When pissing about with randomly generated nonsense level data, be sure to copy and paste the SAME LEVEL DATA into both versions, so you don't spend a good half hour trying to figure out why the two versions are outputting different levels..

*sigh*

OK, I got the level loading from "Big JNKrunched String" into a 7x7 level, smooshed into a great big array, and hopefully leaving enough space for both resetable and static elements.
... I think!

Next up, Making an Editor!!
... god help me!!!

-=-=-
''Load, Next List!''
Thu, 11 Jul 2013, 06:38
Jayenkai
... except for when it doesn't..

If I try to compile the GLFW target, I get a "String too long" warning.

FFS, HTML Target can cope, the Android one can do it, and even DevKitPro can manage it for the DS.
.. But.. OH NO.. Not Windows!!

Windows kan haf not teh big txts!

-=-=-
''Load, Next List!''
Sun, 14 Jul 2013, 06:51
Jayenkai
Tricky stuff, working on the same game in two completely different languages..
I keep coding things with..
if x=y then dothis()
when I should be coding them with..
if (x==y) {dothis();}
and vice versa.

It's slow progress, but the engine's starting to take shape.
I have the ability to load a 7x7 map into memory.
I can run left to right in it, through all the rooms..
I can run into brick walls, and be bounced off them.
... and that's about it..
I haven't yet added any up and down movement. That oughta be next on my list, I think. Holes and Ladders..

*sigh*
Such a slow pace, getting everything working, and double/triple checking it in both languages to ensure everything's working identically.

But, so far, nothing annoying has cropped up.
Well, apart from that odd GLFW Compilation error. I need to look into that. Will probably be a simple case of splitting the level format up a bit.

-=-=-
''Load, Next List!''
Sun, 14 Jul 2013, 12:59
Jayenkai
*sigh*
Spent a good 20 minutes of bug-hunting, there..

My string was showing up as the correct length, but putting it into JNKrunch() was resulting in a bizarre error-filled string.
Of course, I should've known that the bug wasn't in my decade-old JNKrunch code! How silly..
.. But that's where I started looking.
*sigh*

Turns out that the actual error was in the generation of the string, pre-JNKrunch, not during JNKrunch.
Should've checked that, first!



^ A Level!
.. A shit level with no point to it, a whole lot of empty rooms, and only the single wall and hole as seen in the screenshot below, but.. A Level!!
As output from HTML5-Monkey into it's DebugLog!

Now to get the "Faux-Save" working on the DS, too..



|Additional|
Hmm.. On second thoughts, might be trickier..
I've never converted JNKrunch over to DS, and.. I dunno.. If I'm honest, I might not even need it.
I've managed to get a simple SaveLevel function in there, but without faffing about with DLDI stuff and actual cart testing, I can't actually test the thing.
I'll probably leave editing as a "Possible, but not implimented properly" feature, unless I find extra time to tweak it later!

-=-=-
''Load, Next List!''
Thu, 18 Jul 2013, 01:38
Jayenkai
I think I might give up on this.

I've got a lot of stuff working, but..
I dunno..
My heart's not in it.

The game just feel like a bog-standard rehash, and I've done far too many of those, lately.
I think this one's going to have to wait until another time.

Game Fail

-=-=-
''Load, Next List!''
Thu, 18 Jul 2013, 02:02
rockford
Game Over.

Better to quit than continue and resent it.