Log In  
[back to top]


Cart #57730 | 2018-10-09 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
10


These things always get stuck in my socks when I go hiking.

I've been playing with a z-buffer 3D rendering implementation, which lends itself to recursive additive fractal structures.

My ultimate plan was a static landscape renderer, but this was an interesting (if sluggish) detour.

-Electric Gryphon

10
2 comments



Cart #52504 | 2018-05-07 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
95

Old Version

Cart #52440 | 2018-05-06 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
95

Pilot your state-of-the-art RAH-66 Comanche helicopter over once-peaceful tropical shores. Take on an endless barrage of enemies and leave their wreckage littering the voxel landscape.

The engine and overall game is inspired by the Comanche series from NovaLogic.
https://en.wikipedia.org/wiki/Comanche_(video_game_series)

Features:
--Voxel landscape engine (as seen in Tera Firma tech demo)
--Shaded 3D polygon enemies
--Seamless map
--Awful self-made music and sound effects

Controls:
z: Fire Missiles
x: Fire Mini Gun
tab: Enable Mouse Control (left button fires gun)

-ElectricGryphon

[ Continue Reading.. ]

95
20 comments



Cart #51644 | 2018-04-15 | Code ▽ | Embed ▽ | No License
28

Here's a landscape / flight simulation engine that I have been playing with. I'm still figuring out how to turn this into a game, but at least it's functional now and runs at 30 fps.

It takes a few seconds to generate the map using simplex noise mapped onto a sphere.

Controls:
Arrow keys to turn and pitch up and down.
Z-key to accelerate

Notes:
There's a 3D shaded polygon engine built into this as well, but I'm not using it yet.

Thanks Anthony DiGirolamo for the simplex noise:
--https://www.lexaloffle.com/bbs/?pid=32443

--ElectricGryphon

28
20 comments



Cart #46523 | 2017-11-20 | Code ▽ | Embed ▽ | No License
11

Playing around for the text jam using Signed Distance Functions. It's not really fast enough for anything other than a proof of concept for textifying grayscale images.

-Electric Gryphon

11
2 comments



Cart #44775 | 2017-09-30 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
12

I've become unhealthily interested in image compression on Pico8.

Hit the "z" key to see the next image.

What we have here is something that might resemble the JPEG compression scheme if you squint.
Compression goes like this:
--Discrete Cosine Transform + Quantatization
--Zigzag encoding of blocks
--Huffman encoding
--Run Length Encoding
--Conversion to a base 64 character set
--Overall compresses to around 1/5 of original 8-bit grayscale size.

What didn't work well:
Image quality is kinda low. There are only about 16 levels of gray that are discernible on pico8 with dithering. Not sure that it makes a lot of sense to encode 256 shades of gray in that case. Not to mention that the image quality at 64x64 is pretty lame to begin with.

This path may be a dead-end because I can only get about 12 64X64 images in here before hitting compressed code limit. If I drop the base 64 coding, I could fit maybe 10 images into the sprite area... Because Pico8 compresses data as well (definitely with better algorithms), my compression may be working at cross purposes to Zep's compression. I still need to do an experiment to see whether the base 64 encoding is any better than the base 16 coding.

I've got some glitching in the bottom right blocks.

Here's the compression script: https://github.com/electricgryphon/pico_8_jpg

Perhaps this will inspire someone to greater image compression heights :-D.

-Electric Gryphon

12
13 comments



Cart #44669 | 2017-09-27 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
35

Step into cyberspace with cutting-edge 3D vector graphics. Battle tanks with your triangular pew-pew cannon. Explode into a number of polygons.

This is an homage to Specter VR, which came packaged with my Macintosh Performa back in the day.
https://www.mobygames.com/game/spectre

Features:
-60 fps
-Motion blur effects
-Blue/Red 3D glasses mode (it actually works)
-Multiple camera modes
-An attempt at writing title music

Issues:
Gameplay is a bit, well, simple. Basically drive around shooting and being shot at.

--Electric Gryphon

35
12 comments



Cart #43486 | 2017-08-20 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
109

Take aim, fire and score! It's Desert Lead 3D!

Spread the desert with the dented and shattered remains of bottles and cans. It's like recycling, but more destructive.

For use with the Pico Light Gun, Desert Lead 3D is also compatible with the Pico Mouse.
(Pico Light Gun is only available in selected dimensions.)
Click at the bottom of the screen to reload.

Old version
[hidden]

Cart #43449 | 2017-08-20 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
109

[ Continue Reading.. ]

109
19 comments



Cart #43087 | 2017-08-05 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
12

I feel like I'm going around in circles here.

-Electric Gryphon

12
4 comments



Cart #40542 | 2017-05-13 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
25

Here's a demo effect kludged together from some doodles I had been playing with.
I'm quite fond of my new and improved 3D shading. (It's not quite as speedy as the line shading I was using previously, but it gives smoother gradients.)

-Electric Gryphon

25
13 comments



Cart #47234 | 2017-12-10 | Code ▽ | Embed ▽ | No License
52

I've been hacking at a ray-marching 3D rendering app.

Features:
--Phong shading
--Shadows
--Dithered colors

Update:
playing with the dithering patterns a bit more.

-ElectricGryphon

52
6 comments




Here's a stab at some lossy compression of the Bad Apple animation-- clocking in at 25 seconds long without even touching the sprite sheet.

The compression algorithm finds the best possible dictionary of 32 different 8x8 tiles with which to represent all of the frames of the animation. Then for each 8x8 chunk of each frame that is being compressed, I find the closest possible match out of this dictionary and record the index of this chunk. Finally, I use run length encoding to compress the string of dictionary indexes for each frame. (That's the idea at least...)

That gets things down to around 54 bytes per frame while still being recognizable.

This is inspired by gamax92 (https://www.lexaloffle.com/bbs/?tid=3263) and this C64 version (https://www.youtube.com/watch?v=OsDy-4L6-tQ)

-ElectricGryphon

13
15 comments




Inspired by old-school demo-scene effects, here is a new and improved grayscale bump map render, which takes 8 bit height map input and generates real-time shading effects.

Please see GitHub for Python image conversion script and sample files. (https://github.com/electricgryphon/pico-9-height-map-converter)

I found the skull height map in the following forum:
http://www.cnczone.com/forums/artcam-pro/156994-last-supper-bas-relief-trade.html

--Electric Gryphon

25
5 comments




Why settle for single renderings of a Mandelbrot when we can smoothly zoom in?

Features:
--Dithered Palette Animation
--Smooth Bilinear Zoom from sprite buffer
--Background Rendering of Mandelbrot into a (third?) buffer

The way this works is that we graphically zoom into initially rendered view of the Mandelbrot from the sprite buffer. While doing this, we are drawing the next level of Mandelbrot zoom into a second background buffer. When it's done, this gets copied into the zoom/sprite buffer. Lather, rinse, repeat.

Overall, a neat effect I think. Though, I wonder if I should trade the (more or less) smooth frame rate and dithering for less chunky pixels.

Also, I realize that I am awful at spelling "Mandelbrot".

-Electric Gryphon

16
3 comments



Cart #38370 | 2017-03-18 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
10

Happy Saturday!

This is an attempt to create a faster falling sand simulation (60fps) by reading and writing directly to screen memory. All pixels / sand particles are active at all times.

I was inspired by Helado's Tiny Terrarium and Axnjxn's Falling sand.
https://www.lexaloffle.com/bbs/?uid=10783
https://www.lexaloffle.com/bbs/?uid=23000

I'm writing 1X2 pixel blocks in order to work directly with bytes and avoid bit-masking to address individual pixels. Then, I am using the display mode hack ( poke(0x5f2c, 2) ) to stretch the vertical scale of the display by 2X without requiring me to write any more data to screen memory.

-Electric Gryphon

10
2 comments




Here's a toy I have been playing around with. Perhaps somebody can use these functions for fancy shaded 3D rendering or something like that.

I have a few functions that draw "RGB" pixels to the screen using pattern dither that are approximated using the rgb values of the pico8 palette.

color_bayer_plot_8(x,y,r,g,b) -- writes a given r,g,b at the x,y (r,g,b are from 0 to 1)

fast_rgb_create() -- pre-renders patterns using a 4X4 bayer dither representing 8 levels of R and B and 16 levels of G.
fast_rgb(x,y,r,g,b) -- writes a given r,g,b at the x,y (r,g,b are from 0 to 1)

function solid_trifill( x1,y1,x2,y2,x3,y3, r0,g0,b0,r1,g1,b1,r2,g2,b2)
Renders a triangle with the three corners colored at rgb and shades smoothly between them. Right now this uses the slower color_bayer_plot_8.

[ Continue Reading.. ]

18
2 comments




I've been playing around with Floyd–Steinberg dithering in order to achieve more continuous color gradients.

This is slow as molasses of course, and even with optimization I don't think it could be used in a game. But perhaps it could be used in a ray tracer or other, more temporally relaxed image generation applications.

13
1 comment




old version:


Here is a cleaned up version of the 3D library that I put together for the Pico Fox game.

The demo code is commented in more detail, but here is the basic gist.

Copy the code between Begin Cut and End Cut. (It's a big chunk.)

In _init() function include:
--init_3d() --Need to call init_3d() to set up player, camera and lights
--use load_object(object_vertices,object_faces,x,y,z,ax,ay,az,obstacle,color_mode,color) to load 3D models into the world
--use read_vector_string and read_face_string to generate vertex list and face list from string data

In _update() function include:
--handle_buttons() -- handle default buttons for player-- this can be overwritten obviously.
--update_player() -- update the player with default movement, stopping at obstacles
--update_camera() -- update the camera based on player location and direction
--update_particles() --update 3D particles if used. (I didn't add any for this demo.)
--...
--update_3d() -- call update_3d() at the end of the _update() function to transform etc.

in _draw() function include:
--draw_3d() --render objects into triangles, sort the triangles and draw them onto the screen

[ Continue Reading.. ]

167
41 comments



Cart #32479 | 2016-11-15 | Code ▽ | Embed ▽ | No License
279

Fly your Arwing to victory in this demake of a certain, iconic SNES game.

Controls:
Arrow Keys: Move ship, Select level in title screen
z/o: Fire

Features:
Filled 3D polygon graphics-- reminiscent of SuperFX chip
3 levels -- select with left or right on the title screen
2 enemy types
Music

Special thanks:
Star Fox Cornerea music sequenced by PJBarnes.com (http://www.khinsider.com/midi/snes/starfox) and imported using kittenm4ster's midi to pico-8 tracker translator (https://github.com/andmatand/midi-to-pico8)

[ Continue Reading.. ]

279
34 comments



Cart #32244 | 2016-11-05 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
25

The forest is looking more foreboding these days.

-Electric Gryphon

25
4 comments




Old version


The Galactic Tourism Bureau has put together a collection of postcards from their enticing travel destinations.
Postcards will switch every few seconds to ensure that you experience each of the 5,000 locales.

Thanks qbicfeet for the font library. (https://www.lexaloffle.com/bbs/?tid=27669)

V2 Changes:
--Improved near field clipping
--Water color can change
--Galactic index is readable

-Electric Gryphon

18
6 comments





Top    Load More Posts ->