00:00
00:00
Image
Bill
Bill Premo @Bill

Age 35

Game Developer

American Academy of Art

Las Vegas

Joined on 7/15/03

Level:
24
Exp Points:
5,888 / 6,400
Exp Rank:
9,230
Vote Power:
6.53 votes
Art Scouts
6
Rank:
Private
Global Rank:
3,727
Blams:
1,356
Saves:
1,171
B/P Bonus:
18%
Whistle:
Bronze
Trophies:
62
Medals:
514
Supporter:
11y 1m 4d
Gear:
3

Altering these settings may filter what you see.

Latest News

More

Intro

It's been a few weeks since I've posted. April was mostly tedious small wins that while essential and important aren't the most exciting updates on a weekly basis.

I think I'll have an early build ready around May 15th it'd be an early build focused/centered more on .fla imported drawings and animations.



Context

In my last post I gave a run down of how the native engine imports .fla and edits shapes, but isn't 100% compatible. Its classify-faces approach relies on topology context that's lost on Flash import. (I'll write a post eventually why the native engine was like that in the first place)

Built a second engine specifically for .fla import. The key pipeline pieces are edgefills and contour tracing. Scanline rendering experiments may come in handy later. (spoiler it did)


The main goals from my last post was rendering edgefills in correct order, shapes movable. Same-color fills merging, then different colors cutting/dividing, then wiring those behaviors into the brush and selection tools. (spoiler yep those work)


It turned out a mix of contour tracing with a compound rasterizer (similar/basically the scanline approach I was experimenting with) was the correct approach and what I'm building off of.


The imported dolly.fla dog file was too complex to start off with so I made a simple yellow rectangle.fla to test with.

iu_1585306_569588.pngyep that's a rectangle.

Week 1 - Roughly where the last post was made

  • One shape per layer (every layer is a planar edge graph)


When I was researching I read a blog post by Jonathan Gay the creator of flash and he talked about playing with lego's as a kid and how they inspired and influenced how flash works. When I first read it, it resonated with me because I also loved lego's.


At first glance I took it as a metaphor but turns out working with edgefill's and planar edge graphs kinda feels like programming lego's or like trying to pull 2 flat pieces stuck together apart.

iu_1585308_569588.webpThe correct term is simply "Lego" and not "lego's" but saying "Lego" just gives me the same weird vibe as someone talking in 3rd person.


  • New contour tracer
  • Drag one same-color region without moving the others
  • FLA imports no longer break on tiny coordinate gaps
  • Marquee selection (the click and drag selection) actually cuts geometry, not just selects it

Week 2

  • Imported FLA files render through the same path as drawn shapes
  • Strokes split fills into selectable pieces
  • Same-color fills merge on contact
  • Rectangle and circle tools work with the new engine
  • My friend died from complications with kidney failure
  • He wrote thoughtful and imaginative poetry and it would take him an hour to eat a sandwich
  • His daughter and son-in-law are quite lovely people
  • Fill selection preserves curves instead of flattening them

Week 3 - This was when editing and manipulating imported .fla fills/strokes really came together.

iu_1585307_569588.webp

  • Same-color merge no longer crashes on three fill collisions
  • No more accidental merges between different colors
  • Paint Bucket works and fills correctly with strokes

iu_1585309_569588.png

  • Fewer false positive merges near edges

iu_1585310_569588.pngsuccessfully cutting an edgefill into 24 fills with strokes moving 12 out and all 12 merging into 1


Week 4 Refactoring/Clean up Test Harnesses and Multi-region commands.

iu_1585311_569588.webpNow imagine all the yellow rectangle tests I didn't screenshot.


This week was a lot of reviewing and refactoring code to solidify what was built. Making sure the foundation was solid before working on the edge-fill brush.

  • Regression test bed running against real FLA files
  • Tracer/rasterizer disagreement now measured and tracked
  • Geometry helpers split out of the main shape class
  • Drag multiple selected regions as one undo step
  • Free transform multiple regions as one undo step
  • Selection survives tool switches
  • Marquee cut crash fixed when marquee selecting on the more complex dolly.fla dog file

iu_1585313_569588.pngWorks on more than a yellow rectangle.


Week 5 (May) Brush strokes to now

iu_1585312_569588.jpg

early on double loop de loop with intersecting brushstroke hole detecting bug

iu_1585314_569588.jpg

intersecting brushstroke would splinter into multiple instead of a single stroke

  • Self crossing brushes no longer leave a transparent sliver
  • Sub-Selection tool updated.
  • Looping brushes correctly form a hole in the middle
  • Brushes drawn over imported rectangles render correctly
  • Different-color strokes cut and render correctly
  • Strokes crossing through another stroke's hole render correctly
  • All of the above survives save and reload
  • Selection works correctly on brush strokes
  • Abruptly end post
  • -Bill

44

Recent Game Medals

5,595 Points
Real Life Girlfriend

Real Life Girlfriend 5 Points

Turn on the Meshi Meshi Woo Woo.

Puzzle Master

Puzzle Master 100 Points

Put the collage back together.

Quack

Quack 5 Points

Find Sabtastic's friends.

Art Aficionado

Art Aficionado 5 Points

Admire the collage for 5 minutes.

The Witch Wins

The Witch Wins 100 Points

Win Necrochess.

Skeleton Crew

Skeleton Crew 10 Points

Get a building to level three.

Welcome To Necrochess

Welcome To Necrochess 5 Points

Lose a game.

Full Power

Full Power 10 Points

Get a unit to level three.

Forbidden Knowledge

Forbidden Knowledge 10 Points

Get a spellbook to level three.

No Biggie

No Biggie 10 Points

Earn 50,000 points.

Little Thing

Little Thing 5 Points

Buy your first costume.

Frequent Buyer

Frequent Buyer 5 Points

Clear round 10.

Two For One

Two For One 5 Points

Collect a balloon and a gift with a single triangle.

Gift Shopper

Gift Shopper 5 Points

Clear round 1.

Play Time!

Play Time! 5 Points

Time of to playing Game!

You Dead!

You Dead! 5 Points

Enemy eating you!

Latest Shared Creations

Image

Boxer Bomb

Added to bosses for Cathode Raybots Feb 10, 2013.

Image

Bomb

Added to faces for Cathode Raybots Feb 10, 2013.

Image

test001

Added to faces for Cathode Raybots Feb 9, 2013.

Image

Cookie Jar

Added to syncdata for Talk Head Oct 6, 2012.