Why LowBot not work ?

0

G-9 2020-01-09 12:49



Timo 2020-01-09 13:37

LowBot was made for the original LowRes Coder app, not NX. It's not compatible. I thought about porting it to NX, but it's basically a complete rewrite and it was too much work for me.


nathanielbabiak 2020-01-09 14:37

I've seen a lot of discussion about the original LowRes, but haven't been able to find it online. Are the programs available for download somewhere? Maybe some repository?


Timo 2020-01-09 15:06

The programs are on the website, but the app was removed from the App Store. http://lowres.inutilis.com/programs/?lccpost=QMvTJwThsR


G-9 2020-01-09 16:36

Can we download it for Windows?


Timo 2020-01-09 16:43

No sorry, LowRes Coder was an iOS only app.


G-9 2020-01-09 18:04

Isn’t in iOS !


G-9 2020-01-09 18:05

There is only LowRes< NX>


was8bit 2020-01-09 23:32

I have reviewed the LOWBOT code and completely agree with Timo... the game code heavily relies on clever code unique to original LowRes, and there is no way to duplicate it in lowres NX...

The best one can do is rewrite from scratch a version similar to it, but it won’t be identical...


G-9 2020-01-10 12:11

I can do it !


G-9 2020-01-10 12:11

But..


Timo 2020-01-10 13:46

The original LowRes Coder app was removed by Apple from the App Store and is no longer available.

Remaking Lowbot for NX means probably redrawing all the 8x8-pixel graphics in 16x16 and rewrite most of the code to adapt it to the NX graphics system. Also I wouldn't like to use the data format of it, but make it compatible to BG Designer etc. Maybe some code for the sprite and movement handling could be reused.


nathanielbabiak 2022-06-10 01:14

Hey was8bit/Timo, could you describe some of the clever code unique to original LowRes you mentioned? I'm just interested...


was8bit 2022-06-10 01:33

One of my favorite tricks was that OL (original lowres) let you check each pixel's color setting... regardless of its defined shade, you had colors 1-15 whose shade could be defined... even if all 15 colors where given identical shading, you could read which color# a pixel was set to

Now, you can use TEXT at a pixel level, which becomes part of the pixels on a layer... or use simple drawn shapes... or use GET BLOCK and PUT BLOCK commands you can pre draw with draw commands something, the BLOCK commands allowed up to 64 images of any size.. kinda like sprites they were easier and more flexible to use than sprites...

In any event, if you make any one graphic all one color#, and only use each color# for a specific target, you then can program your bullet to detect if its center point has hit a pixel matching a target#.. matching color# to specific target#, you get pixel precision for your bullet as soon as its center is above any one point of any one target...

CNUM=POINT(XBULLET,YBULLET) was my favorite "trick" to use ;)


nathanielbabiak 2022-06-10 01:37

Got'cha - thanks!


was8bit 2022-06-10 01:45 (Edited)

Another thing is that the multiple layers can be set as transparent or opaque... this lets you create a hidden layer... so first you load the hidden layer to store all the drawn images you will need.... to draw images in real time can slow your game down, so predrawing them is better..

So then using the "obsolete" GET, PUT commands, you can copy and paste as many times any block of graphics from and to any layer... a setting in these commands let you only draw pixels in thar block not color 0 (or empty pixel)

I have a really cool 3D city maker... i just add the farther away graphics first and they layer up really nicely on top of each other... plots of land are stored in an array and every time you add or remove a plot and then the screen is redrawn each time....


was8bit 2022-06-10 01:48

The hardest thing in OL was "Tiles, tiling", making music, and making sprites... these were possible, but compared to the ease of these in NX, its a difference of night and day....


was8bit 2022-06-10 01:54

That TEXT effectively "drew" pixel by pixel, any character to a layer, it functions as a graphic... unlike NX, in OL all you can "read" are the individual pixels on a layer...

TEXT places a character image to ANY pixel point, and once places its no longer a character, but simply added pixels to the layer... think of it as stamping on paper...

I often used text characters like sprites..


was8bit 2022-06-10 02:02 (Edited)

PERSIST in OL functions differently than in NX...PERSIST command was applied to any variable, so that whatever value that this variable was when you quit the game, it would keep that value when you replayed the game.... although NX PERSIST isnt as easy/automatic, its more powerful


was8bit 2022-06-10 02:05

The one thing i miss from OL is the ON END GOTO.. which lets you run a small amount of code automatically when player quits the game.. it would be useful in NX to save PERSIST data automatically when the game exits..

... as is, in NX, i have the code always saving PERSIST data


was8bit 2022-06-10 02:15

Finally, OS display resolution can be changed, allowing for easier (although blockier) zoomed in graphics , which would also run the code alot faster.. i made a lot of games using just blocks (zoomed in pixels turned into bigger blocks)


was8bit 2022-06-10 02:17

Concerning LOWBOT game, it IS a fun game... it looks like a fun challenge :) i might attempt a port, Timo getting full credit of course ...


nathanielbabiak 2022-06-10 02:41

Is there an online manual for OL? It wouldn't be hard to write an API inside LRNX to allow OL games to work.

I think I could do it with minimal framerate issues too.


was8bit 2022-06-10 03:10

So, i have passed the first hurdle.. i have removed the graphics and music, and have made the neccessary edits for other incompatible things..

... what is left is rather butchered and unplayable, but it "runs" without any error warnings...

Lowbot Port 0.1.nx | Open in app
2022-06-10 03:10

was8bit 2022-06-10 03:37

Ol text

OL Text.nx | Open in app
2022-06-10 03:38

nathanielbabiak 2022-06-10 04:19 (Edited)

Found it here! I can definitely do this as an API, but the colors will be limited.


was8bit 2022-06-10 05:31

Thats much easier to read than mine :)


nathanielbabiak 2022-06-10 05:38 (Edited)

So I read the OL manual beginning-to-end. Got through the 64x64 pixel, 15 palette color/border/background drawing commands, I'm feeling OK about implementing that. Got the whole thing laid out.

And then I got to the sprites... and then I got to the layers... it was a gut-punch. LowRes NX won't be able to do anything like that!

It would be possible to implement the LAYER OFFSET number, [x], [y] instruction, but only when number=0.

Did OL games use any other layer instructions often? Is that what you mentioned about drawing on a 'hidden' layer?

Also, did OL games use sprite instructions often?


was8bit 2022-06-10 11:38

I ALWAYS used more then one layer, almost always using all 4...

Each layer had its own color#1-15, so all together your P=POINT(X,Y) (which applied to the current layer the code is pointing to) could distinguish between 60 different color points...


was8bit 2022-06-10 11:43

For convenience, I might use one layer for enemies, another layer for the bullets, the back layer for the buildings, etc...

I could use SCROLL to adjust the background... use the top layer for my player (kept in the middle) and all my stats... the enemy and bullet layers could by scrolled to match the background... i often drew my graphics with simple graphics... a tank could be a circle with 2 lines on the sides for tred and another line for turret... using CLS each pass and redrawing their new positions..


was8bit 2022-06-10 11:47

I created an approach where I could draw my graphics, and my code could then scan the pixels and create then sprite data... there are commands to store and then paste data directly to code, so my code would scan save and you would have your Sprite data, for one Sprite or for 4 sprites (for 2x2 block of sprites for bigger characters)


was8bit 2022-06-10 11:51

So, yes, 8x8 sprites were used, i would say about half the time... Timo used the almost exclusively

Also, Timo made a music player code that had to be pasted into your game to work..

The code for that game Lowbot exceeds the limit for NX, it was twice as long as NX would allow... so me chopping out all music and sprites where absolutely necessary to get NX to even accept the code...


was8bit 2022-06-10 12:02

Here is the code for my tank game... it doesnt use sprites... rather the tanks are dynamically drawn to show which angle they are pointing to ..

Tank Game.nx | Open in app
2022-06-10 12:02

was8bit 2022-06-10 12:03 (Edited)

The image shown doesnt match as i didnt get an image for this code... notice that all my graphics are DRAWN, no sprites..


was8bit 2022-06-10 12:16

Here is a typical example of sprite use... this was someone else's work so you can explore for your own understanding, but of course we would need the original authors permission to publish....

Zelda.nx | Open in app
2022-06-10 12:16

was8bit 2022-06-10 12:19 (Edited)

You can see that almost half of the code graphic data.. but it ISNT sprites, it uses BLOCK command to process the images...


was8bit 2022-06-10 12:22

In both examples, all 4 layers are in use... this is rather typical for OS games...


was8bit 2022-06-10 12:45

Finally, here is some of my sprite code..

I reload sprite data with new images, and animate them... the screen shows a bug that can point to 4 different directions, and flap its wings.. i actually copy the bug so the screen is full of bugs.,,

Sprite Code.nx | Open in app
2022-06-10 12:45

was8bit 2022-06-10 12:48 (Edited)

Here, i have a hidden layer that holds all of the drawn images...

My code then reads the appropriate pixels and loads them into an array, which is then loaded into the sprite...

If you notice, by reading the pixels from different directions while loading the array, i can reuse the same one image for all 4 directions ;) all i had to do then was draw the 4 animated frames


was8bit 2022-06-10 13:35

Here is my remake of the above Sprite Code, optimized for NX

https://lowresnx.inutilis.com/topic.php?id=2430


nathanielbabiak 2022-06-10 14:38

Seems like there's a long way to go, but looks good so far!


was8bit 2022-06-10 15:14 (Edited)

Best of luck... if anyone can do it, it would be you :)


Log in to reply.