Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
HappyHippo
Nov 19, 2003
Do you have an Air Miles Card?

Corla Plankun posted:

that's a really cool idea! i like it

Thanks!

It's still a little rough around the edges but I've got it finished enough to put online:
http://www.mseymour.ca/football/game_select.html

Adbot
ADBOT LOVES YOU

Nolgthorn
Jan 30, 2001

The pendulum of the mind alternates between sense and nonsense
It's a bit like cheating because far less than being a really cool thing, it's more like practically a working product. Over the last year or so I've been building this Vue app that works like a poor man's single sign on. Instead of giving all of your social media data to whatever company were to implement it, it instead gives them nothing but a uuid.

Since I figured no business would ever implement such a sensible thing. I tacked on the ability to generate email addresses that you can plug into their signup form.



Then it works the same way, essentially, as long as you have a password manager because these addresses ("6f3meitj.o53u1qx5 @ getinbox.io") for example are impossible to remember. But if it were implemented as a single sign-on solution, it would just perform a redirect and authorise a session the same as all the rest of them.

https://www.getinbox.io

It's also a notification system. So if your site were to implement it, you could send email-like messages to users without having to deal with email just websockets instead.

limaCAT
Dec 22, 2007

il pistone e male
Slippery Tilde
Girlfriend noticed that we couldn't get our paper calendar from the shops in our neighborhood so I coded for her a c# app which uses IText to create a calendar in PDF.


https://github.com/limacat76/DuckCalendar

Nolgthorn
Jan 30, 2001

The pendulum of the mind alternates between sense and nonsense
Neat, I've never thought about how to calculate Easter before.

HappyHippo
Nov 19, 2003
Do you have an Air Miles Card?

Nolgthorn posted:

Neat, I've never thought about how to calculate Easter before.

Calculating Easter is legendarily complicated

Nolgthorn
Jan 30, 2001

The pendulum of the mind alternates between sense and nonsense
It's simple
code:
        private static void CalculateEaster(int y)
        {
           
            int a = y % 19;
            int b = y / 100;
            int c = y % 100;
            int d = b / 4;
            int e = b % 4;
            int g = (8 * b + 13) / 25;
            int h = (19 * a + b - d - g + 15) % 30;
            int j = c / 4;
            int k = c % 4;
            int m = (a + 11 * h) / 319;
            int r = (2 * e + 2 * j - k - h + m + 32) % 7;
            int n = (h - m + r + 90) / 25;
            int p = (h - m + r + n + 19) % 32;
            easter_month = n;
            easter_day = p;
        }

limaCAT
Dec 22, 2007

il pistone e male
Slippery Tilde

Nolgthorn posted:

It's simple
code:
        private static void CalculateEaster(int y)
        {
           
            int a = y % 19;
            int b = y / 100;
            int c = y % 100;
            int d = b / 4;
            int e = b % 4;
            int g = (8 * b + 13) / 25;
            int h = (19 * a + b - d - g + 15) % 30;
            int j = c / 4;
            int k = c % 4;
            int m = (a + 11 * h) / 319;
            int r = (2 * e + 2 * j - k - h + m + 32) % 7;
            int n = (h - m + r + 90) / 25;
            int p = (h - m + r + n + 19) % 32;
            easter_month = n;
            easter_day = p;
        }

Actuality it isn't that simple unless you are a German kid called Carl Friedrich Gauss. Or better for a modern monkey like me it's simple since I have access to Google. Ask me the meaning of that calculation and I will just shrug.

Cancelbot
Nov 22, 2006

Canceling spam since 1928

I know it's a personal home-made project (and a neato one at that) but CalculateEaster makes me want to write some unit tests.

limaCAT
Dec 22, 2007

il pistone e male
Slippery Tilde

Cancelbot posted:

I know it's a personal home-made project (and a neato one at that) but CalculateEaster makes me want to write some unit tests.

Yeah I tested that creating 10 calendars and checking the first five with the Wikipedia results. Then again the program just bakes in the Italian festivities, and it would take a bit to stop using all those statics for a console app which just spits out a calendar in a default ditectory.

If I could fix the above problems (statics, lack of tests), how would you bundle different festivities from different countries? I was thinking about reading a json into a dictionary, excluding mobile festivities... Pro / Cons?

Xerophyte
Mar 17, 2008

This space intentionally left blank

Cancelbot posted:

I know it's a personal home-made project (and a neato one at that) but CalculateEaster makes me want to write some unit tests.

limaCAT posted:

Actuality it isn't that simple unless you are a German kid called Carl Friedrich Gauss. Or better for a modern monkey like me it's simple since I have access to Google. Ask me the meaning of that calculation and I will just shrug.

Doing unit testing for Gauss's Easter algorithm - which is different from the one posted - will be an interesting exercise in the limits of unit tests since Gauss's algorithm famously gives the wrong answer for some years. You'd better know to check Easter in 4200 when writing those tests!

Gauss's reply to people complaining about his errors and asking him to show his work was

Johann Carl Friedrich Gauss posted:

The investigation by which [the formula] was found is based on higher arithmetic, for which I cannot refer to any publication.
which probably wouldn't pass code review.

Newf
Feb 14, 2006
I appreciate hacky sack on a much deeper level than you.

Nolgthorn posted:

It's simple
code:
        private static void CalculateEaster(int y)
        {
           
            int a = y % 19;
            int b = y / 100;
            int c = y % 100;
            int d = b / 4;
            int e = b % 4;
            int g = (8 * b + 13) / 25;
            int h = (19 * a + b - d - g + 15) % 30;
            int j = c / 4;
            int k = c % 4;
            int m = (a + 11 * h) / 319;
            int r = (2 * e + 2 * j - k - h + m + 32) % 7;
            int n = (h - m + r + 90) / 25;
            int p = (h - m + r + n + 19) % 32;
            easter_month = n;
            easter_day = p;
        }

My favorite part of this is the abandonment of the incremental naming scheme when our favorite loop iterator arrives.

Munkeymon
Aug 14, 2003

Motherfucker's got an
armor-piercing crowbar! Rigoddamndicu𝜆ous.



Newf posted:

My favorite part of this is the abandonment of the incremental naming scheme when our favorite loop iterator arrives.

f is your favorite loop iterator?

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.
I personally compose all my loops in the key of s

syntaxfunction
Oct 27, 2010
I'm currently working on a realistic building generator. It utilises squarified treemaps and another white paper for the logical construction of it (links below). Currently randomly places doors but each RoomData construct contains a tag along with flags like NOCONNECT(<list>) that will determine what must be connected, what cannot, what needs windows, etc, etc.

In the long term I am cooking up actors for different styles of windows, doors and trim, which again will be flagged and placed appropriately. You can already specify wall and floor materials which is nice. Last bit is to have each room contain a list of appropriate items and place them around. This is done by each item actor containing info such as general placement (CENTRE, WALL, CORNER, etc), and a bit of a humanising factor with regards to both rigidity in placement (do you want everything lined up, or have a bed a bit further from the wall than the dresser?) as well as angle wiggle room (because realistically no one places everything at straight angles).

That's the long term goal anyway!



Note: Rendering done in UE4 but I intend to eventually make it platform agnostic as far as the data and manipulation structures go. Rendering is a you problem :P

Paper Notes:
Squarified Treemaps
https://www.win.tue.nl/~vanwijk/stm.pdf
A Novel Algorithm for Real-time Procedural Generation of Building Floor Plans
https://img.fireden.net/tg/image/1509/10/1509102037910.pdf

Newf
Feb 14, 2006
I appreciate hacky sack on a much deeper level than you.

Munkeymon posted:

f is your favorite loop iterator?

Alphabets are hard, ok?

syntaxfunction posted:

I'm currently working on a realistic building generator. It utilises squarified treemaps and another white paper for the logical construction of it (links below). Currently randomly places doors but each RoomData construct contains a tag along with flags like NOCONNECT(<list>) that will determine what must be connected, what cannot, what needs windows, etc, etc.

In the long term I am cooking up actors for different styles of windows, doors and trim, which again will be flagged and placed appropriately. You can already specify wall and floor materials which is nice. Last bit is to have each room contain a list of appropriate items and place them around. This is done by each item actor containing info such as general placement (CENTRE, WALL, CORNER, etc), and a bit of a humanising factor with regards to both rigidity in placement (do you want everything lined up, or have a bed a bit further from the wall than the dresser?) as well as angle wiggle room (because realistically no one places everything at straight angles).

That's the long term goal anyway!



Note: Rendering done in UE4 but I intend to eventually make it platform agnostic as far as the data and manipulation structures go. Rendering is a you problem :P

Paper Notes:
Squarified Treemaps
https://www.win.tue.nl/~vanwijk/stm.pdf
A Novel Algorithm for Real-time Procedural Generation of Building Floor Plans
https://img.fireden.net/tg/image/1509/10/1509102037910.pdf

This is cool! One thing you didn't mention is hallways - the lack of a thoroughfare really stands out in this example, but I'll bet it wouldn't be too hard to encourage the algorithm to create (at least) one highly connected 'room'.

Newf fucked around with this message at 18:28 on Feb 7, 2021

syntaxfunction
Oct 27, 2010

Newf posted:

This is cool! One thing you didn't mention is hallways - the lack of a thoroughfare really stands out in this example, but I'll bet it wouldn't be too hard to encourage the algorithm to create (at least) one highly connected 'room'.

That's actually addressed in the second paper! Although I am taking a cheat's method. Basically, it takes all vertexes and figure out what rooms need to be connected to the through-corridor. I then find the optimum shift (up or down) and resize the rooms intersecting the corridor.

See this:


Yes, you can absolutely create intersections such that the lost area of each room is minimised, creating non-rectangular rooms, and that is in the cards. But right now I am lazy :v:

Falcorum
Oct 21, 2010

syntaxfunction posted:

That's actually addressed in the second paper! Although I am taking a cheat's method. Basically, it takes all vertexes and figure out what rooms need to be connected to the through-corridor. I then find the optimum shift (up or down) and resize the rooms intersecting the corridor.

See this:


Yes, you can absolutely create intersections such that the lost area of each room is minimised, creating non-rectangular rooms, and that is in the cards. But right now I am lazy :v:

If it's any comfort, I did something nearly identical for my last university project (based on the second paper in your post in fact) and ended up using the same "cheat" solution for corridors. :v:

Falcorum fucked around with this message at 18:58 on Feb 14, 2021

Rides Naked
Jun 4, 2006

Program, Whale, Program
Not sure why but I used PyBoy to slap together a quick netplay emulator for Pokemon Red/Blue:



Incredibly janky, but hey it works, and lets you set badge-based win conditions and lock out catching wild Pokemon the other play already owns.

Github here if interested

Claeaus
Mar 29, 2010
I found a nice tutorial on Inverse Kinematics by Coding Maths on Youtube and made this thing: https://steenstn.github.io/kinematics/

EDIT: If you're on a computer they will reach for your mouse cursor if you get close

Claeaus fucked around with this message at 06:22 on Apr 12, 2021

pokeyman
Nov 26, 2006

That elephant ate my entire platoon.

Claeaus posted:

I found a nice tutorial on Inverse Kinematics by Coding Maths on Youtube and made this thing: https://steenstn.github.io/kinematics/

This makes me sad that screensavers aren't a thing anymore.

(I mean that as a compliment!)

HappyHippo
Nov 19, 2003
Do you have an Air Miles Card?
That is cool

Carthag Tuek
Oct 15, 2005

Tider skal komme,
tider skal henrulle,
slægt skal følge slægters gang



Kinda creepy. Very nice!

MrMoo
Sep 14, 2000

Running four 1080p videos via MPV from a webpage using custom <video> tags in order to get hardware acceleration on Linux playing back through an LG ultra-stretch display.

mystes
May 31, 2006

Claeaus posted:

I found a nice tutorial on Inverse Kinematics by Coding Maths on Youtube and made this thing: https://steenstn.github.io/kinematics/

EDIT: If you're on a computer they will reach for your mouse cursor if you get close

Only registered members can see post attachments!

ynohtna
Feb 16, 2007

backwoods compatible
Illegal Hen

Claeaus posted:

I found a nice tutorial on Inverse Kinematics by Coding Maths on Youtube and made this thing: https://steenstn.github.io/kinematics/

EDIT: If you're on a computer they will reach for your mouse cursor if you get close

Love it.

You've created sea-life. Hope you're ready for the responsibility. :D

https://www.youtube.com/watch?v=HD8xQKkyUmI

wilderthanmild
Jun 21, 2010

Posting shit




Grimey Drawer
I'm working on a toy model that simulates epidemics. I've stared way too long at graphs of cases/deaths, read too many papers about various factors that impact the spread of covid/other diseases, and seen way too many models trying to make predictions. Earlier in one of the covid threads I'd been playing around with some spreadsheet models and it was a really interesting exercise.

So I decided I'd start hammering out my own model in C#. I know it will never be all that accurate, but it's more just fun I've been working on. It models a handful of things like vaccination, travel between regions, seasonal changes. It also takes a ton of inputs for things like secondary attack rate in various settings, frequency of travel, how many locations a person can potentionally visit. It's not based on taking real world numbers and making future predictions but rather in a totally fabricated setting.

It's a console app that takes JSON files or manual input for the various parameters to build the model and outputs some console logging and dumps a lot more data to CSVs so I can make graphs in google sheets.



duck monster
Dec 15, 2004

Those sorts of modeling simulations can be super interesting rabbit holes to get lost in.

crazysim
May 23, 2004
I AM SOOOOO GAY
Bit of a weird "screenshot" but here it goes.



You can click on that badge and see the sheet that is the data backing the badge.

The badge generator is at https://cellshield.info .

Compared to the other stuff here, it's not the most advanced thing by a long shot. It is however useful for embedding a cell from an informal database that is a Google Spreadsheet atop of some README, wiki, forum post, or web page.

It's a simple Go server that uses Google's API to output JSON that https://shields.io can read. Mix it in with some simple Vue generator front-end to take public spreadsheet URLS and tada.

The badge generator web UI can also make BBCode for embedding (along with modern Markdown and so on).

I've already used it for this and that. The former outputs a running bounty total and the latter is community annotation progress.

A major Game Boy development contest is using it labeless to display the prize pool amount: https://itch.io/jam/gbcompo21

Pretty handy!

crazysim fucked around with this message at 09:52 on Jul 24, 2021

hendersa
Sep 17, 2006

https://twitter.com/DrHendersa/status/1427478614929514497
I polished up my work, added a splash of color for readability, and put the code out on github:



Easily the worst part of making this thing was the effort of finding some Shift-JIS-to-UTF8 converter code that was OS portable and didn't add library dependencies.

Tann
Apr 1, 2009

I like this thread, cool to see a wide range of cool stuff you're all doing :)

I've started work on a little toolbox/toy to help me explore cellular automata, higher-dimensional space etc!

https://tann.fun/article/ndtoy

fletcher
Jun 27, 2003

ken park is my favorite movie

Cybernetic Crumb
Presenting my amazing new website I just launched: https://rightclicksaveas.net/



It's not the most useful thing in the world by any means. In fact, I can't remember the last time I got a link that I needed to use something like this. I bought this domain name in 2008 and used to have a similar page hosted on it. Decided to set it up again and use terraform to handle all the s3 & cloudfront stuff, automatically deployed upon git push via Bitbucket pipeline, which I can then re-use for a couple other little static sites I want to host. This was the guinea pig for that.

pokeyman
Nov 26, 2006

That elephant ate my entire platoon.
Nice! That's way easier to remember than data:text/html,<a%20href=http://updog.example>link

Woebin
Feb 6, 2006

pokeyman posted:

Nice! That's way easier to remember than data:text/html,<a%20href=http://updog.example>link
I'm too lazy to copy and paste that URL, what's updog?

lolasaurusrex
Feb 8, 2013

Love threads like this. Some of you have mad chops.

Here's a really early dev screenie (still prototyoping really) of me and my pals "weird west" narrative roguelike where everything is turnbased but you have a high degree of control over the combat (in this screenshot you can see I'm aiming the gun manually). This character has skills like throwing dynamite (modify the turns to burn out the fuse, blow holes in the level, shoot it if you need it to explode early!) and richoceting bullets off of scenery, enemies, yourself etc.

We think the game is mostly going to be about positioning and area control. You are very fragile and so are the baddies. Putting a bullet in your gun takes a turn, so you need to manage your spacing, stay out of enemies sight lines (the can only shoot in cardinal directions), and keep away from melee monsters.



Also spent 2 years on-and-off making content tools and libraries for a text-based browser MMO/MUD that literally 10 people on earth will play 😂

syntaxfunction
Oct 27, 2010
Hey nerds. I think the last thing I posted in this thread was me working on a procedural floorplan generator. Lotta stuff has happened in my life, but guess what, work has continued.

So basically there's some whitepapers that other people here have used to generate floorplans and they work great, using squarified tree maps. I had that project pretty sorted and it was awesome. I then discovered a whitepaper that had some very nice algorithms for realistic layouts and generation of cities, from a top down generation. I was like, hell yeah gonna use that. Then I found out they had made a UE4 demo of the project, so I snagged that. In the process I noticed something.

https://github.com/magnificus/Procedural-Cities

118 forks. And if you go through them I think not one of them has had any actual work done. None. Which bodes well, because people forked it thinking "gee whiz, free procedural cities that will make an entire game for me!" like so many people do. Then they see the code and say gently caress this. I ran the demo and was pretty happy with the layout and general design of buildings, and I figured it was a good start.

My goal is not to make a game. That's boring. My goal is to first cure boredom by giving myself a project, and second is to create tools that will help actual devs prototype games quickly, giving them a base. So no running off and going "ooh cool, now to add spaceships!" Very focused on the goal.

Step one was changing a lot of code. A lot. Basically the UE4 demo provided made some assumptions:
1. It was a demo for a paper, not a product. So the code is justifiably not modular or neat. Or commented much.
2. It is designed to generate during playtime, not beforehand. I however wanted it to be a dev tool, so it needed to be modified to generate in editor so devs can see what they're working with.

Those two factors were big. So I've been tweaking and changing things. It now generates in editor, instead of during runtime. The code has been much tidied (although to my shame not really commented because my brain was on fixing) and made more modular, removing dependencies on a lot of weird things. It can now, on my baby laptop, generate cities of up to 300 roads. To give an idea of that, it generated this within a couple minutes on my laptop:



Because of the generation it means every building is able to be entered, filled out, etc. The visuals aren't amazing, obviously, but it does the trick.




Ripping out a bunch of static code has definitely helped the neatness of the whole thing, but there's a bunch to do. Right now my checklist before initial release is:
1. Material pools. Because each building is tagged as a specific type I can create a nice neat container of materials and have each assign a different one to each building. Simple build should very much help with monotony.
2. Incorporate the floorplan generator. The provided code and paper point out that interiors are not well done. They essentially consist of random lines for walls, and they make poor use of space and don't feel realistic. So the floorplan project I made is going to be put in as a way to provide proper interior designs. Other advantages will be that the floorplan treats each room as a separate but simple object, meaning I can quickly assign materials to individual rooms without worrying about the exterior building.
I will note though that the floorplan assumes a rectangular shape for the building. The current (temporary) planned workaround is to simply build based on a rectangular container of the building and trim the rooms as needed. This is a poor solution, and purely temporary.

Future things to do will be:
- Visual improvements. Adding proper surrounds, pillars if needed, etc. Little things to flesh out
- Better material designation. Having each building have a (relatively) unique texture is good, but I want to provide the ability to specify ranges for materials to be modified (HSV shifts etc). The idea is if you had several bedrooms they could all use the base painted wall texture, with a specified HSV to provide many different randomised versions on generation with low overhead. Should help with making it more interesting.
- Using the individual room objects to take the space and add pre-made actors into it using a set of rules to designate where it would be placed, with fuzziness factors such as rotation and offset to make it a little more humanised. I hate when procedural stuff is all right angles.
- Elevation consideration. This is the big one that I'm doing a lot of research into. The generator assumes a 100% flat ground. Which isn't ideal. So the idea is that once a city is generated it will take the elevation at each building and either build up on a base or level down (or both!) so buildings are still sound, but also can be built into elevated ground.

So this is what I've been working on! It's amateur and there's probably a billion similar projects that do this better, and that's okay, because this keeps me sane. Thanks for reading!



Edit: No one cares but I made updates. I added specific helper components that work as material pools. This lets you specify a material pool for each building type, but right now I'm lazy and it all works off the one. But now you can specify as many materials for each part of the building as you want which is pretty rad.

Also not related to the generation itself but I tweaked the visual settings for the project for funsies and to show that it looks far nicer than the previous pics showed haha.





I am becoming quite happy with the progress. Also to note that the old way the materials were handled basically created a new version for each material on each building, which was not great. The new version relies on instanced materials, on the basis that if anything is tweaked it's still far more efficient to use an instance than a completely new material every time.

syntaxfunction fucked around with this message at 17:01 on Sep 26, 2021

GI_Clutch
Aug 22, 2000

by Fluffdaddy
Dinosaur Gum
For some reason I thought about gopher the other day. I remember getting a gopher client on one of the disks we received when we got internet access in 1995, but not spending more than a few minutes with it as the web existed. So I start googling and next thing you know I'm looking at the RFC and, gently caress it, I wrote a basic library that handles some basic stuff like directory listing and downloading text/binary files. Then tonight I threw together some quick code to traverse a server (no downloads yet) displayed using HTML with some emojis to gussy it up displayed in WebView2 (Chromium Edge) in a winform.

I doubt I'll ever finish it, but I think I spent more time goofing around with gopher in the last few days than I did way back when.

Neurion
Jun 3, 2013

The musical fruit
The more you eat
The more you hoot

Some years back I posted about a project where I made a tool for running alongside DOSBox, and when you played Star Wars: TIE Fighter it would show you a real-time combat map, mission goal readout, and other displays. One of the things that was part of the project was reverse-engineering the file format of the 3D models used in the game. At the time I got as far as the basic meshes of the models, but none of the actual surface details. Lately I've been making a similar program for Star Wars: X-Wing, and since TIE Fighter was basically built upon an expanded X-Wing engine, it was much easier to get in and reverse-engineer and disassemble X-Wing (though there were some new difficulties owing to the fact that X-Wing runs in real mode and used the older segmented memory model, while TIE runs in protected mode and uses a linear memory model, which is much more straightforward to disassemble.)

Anyways, as part of the fruits of my labors, I finally figured out how the two games store and interpret surface details on their 3D models. Here's a screenshot of a test form showing the TIE Fighter model. The green wireframe indicates the actual model mesh, while the red regions are the surface markings on the faces. The wireframe is also being rendered with very basic and primitive backface culling, to make it slightly clearer visually.



It's interesting how the game applies surface details to the meshes, as there's no actual textures used for the game's models. Models are made up of one or more parts, which split the craft up into sub-parts, such as wings, fuselage, and other details. In Star Wars: TIE Fighter these individual parts are uniquely targettable, and some can even be destroyed such as turrets and comms antennas. X-Wing has only a rudimentary version of that, in that you can't target sub-parts of a craft, but you CAN blow the shield generator domes off of the bridge of a Star Destroyer to instantly bring its shields down. Another thing I discovered during my disassembly and code tracing is another craft has destroyable hardpoints: the two turrets of the Corellian Corvette can also be blown off, which I had no idea was possible as no game documentation made mention of this and it doesn't come to play in any missions. As for turrets on all other craft, they are modeled as invisible weapons hardpoints with unrestricted targeting angles, which means it doesn't matter which angle you approach a capital ship from, as every turret can independently target you (with the laser bolts even passing through the model to accomplish this). This differs from TIE Fighter, where turrets are restricted to only being able to shoot at targets that would not result in the shot passing through the parent craft.

Getting back on track to how the games handle surface details. Faces on the model mesh can have one or more "markings", which are regions of the face that are recolored during rendering, sort of like an extremely primitive pixel shader. The model of a TIE Fighter, for example, if rendered without these markings, would have completely grey wings, without the iconic black solar panel details. The game basically stores the vertices of a marking as an index into the array of vertices that define the face the marking is on, and then a pair of ratios. The vertex of the marking is calculated by taking 3 vertices: the one indicated by the index, it's preceding vertex, and it's following vertex, and then combining them in a way defined by the ratios to basically get offsets onto the face from the vertices themselves. I haven't looked at the actual rendering code yet, as it's all complex and still going to take me time to figure out exactly how it works, but my prediction is that when a polygon for a face is being drawn, it checks if the current pixel falls within one of these marking regions and changes the color of the pixel if it does.

octan3
Jul 10, 2004
DoNt dO DrUgs

syntaxfunction posted:

Hey nerds. I think the last thing I posted in this thread was me working on a procedural floorplan generator. Lotta stuff has happened in my life, but guess what, work has continued.
...

snip

I've been meaning to reply to your post since I saw it show up but haven't had the time to.

What you are undertaking is exactly what I've wanted to do for some time and never find myself with any due to childcare / COVID lockdowns so I'd be very keen for you to post any updates you have as you progress through it.

duck monster
Dec 15, 2004

GI_Clutch posted:

For some reason I thought about gopher the other day. I remember getting a gopher client on one of the disks we received when we got internet access in 1995, but not spending more than a few minutes with it as the web existed. So I start googling and next thing you know I'm looking at the RFC and, gently caress it, I wrote a basic library that handles some basic stuff like directory listing and downloading text/binary files. Then tonight I threw together some quick code to traverse a server (no downloads yet) displayed using HTML with some emojis to gussy it up displayed in WebView2 (Chromium Edge) in a winform.

I doubt I'll ever finish it, but I think I spent more time goofing around with gopher in the last few days than I did way back when.


I used gopher a lot back in the day, because I was accessing the net from Minix on a 286 with a modem to dial into a BBS that had a linux shell with gopher , irc, and pine and whatever it was that we read usenet from. So the web was pretty hypothetical then, I *think* it had been released (It was 1993 or 94) but I hadnt seen it yet. To be honest 90% of my net use was usenet, that bloody thing seemed immense at the time.

edit: I just dawned on me that Usenet, which was invented in 1980, can do 90% of what people use facebook for AND it was completely decentralized. No concept of anonymity or privacy though. I mean you can sort of do anonymity, but it had no concept of "private" newsgroups. Not really. I mean you could set up a local newsgroup with no distribution, but it was private only to your server.

duck monster fucked around with this message at 03:57 on Oct 27, 2021

Adbot
ADBOT LOVES YOU

Hollow Talk
Feb 2, 2014
For some reason, EVE Online is still strangely appealing to me on a conceptual level, even though any time I get even close to logging in, I remember how much the whole thing just feels like a job (and not necessarily a particularly fun one, at that). However, I started playing around with some bits and pieces quite a while ago, and a few months ago I felt like picking things back up, as any excuse to play around with some stuff is good, even if it's EVE-related... :sigh:

As a background, every time a player (and some NPCs) kill another player's ship, player-owned structure etc., EVE generates what is called a "killmail", essentially a permanent record of a kill. There are some third-party websites who collect these after people post them (or grant access to have them pulled directly from the API for their character), and one of them offers what is essentially a streaming API that can be continuously queried for any new killmails that arrive on the platform.

Now, naturally, there is a lot of noise in there, as I don't really care about every single dead ship. What I always enjoyed most was getting a better overview of the galaxy in its entirety, about hot spots, strategically import fights unfurling etc. For this application, I do a bit of filtering and some aggregations in the background, and I can therefore follow along passively, in my browser, in sort-of real-time (depending how quickly killmails get pushed etc.) without having to actually log in, which is the best way of playing EVE.

Since I don't really like Web Development (and because I can't design anything nice), everything looks a bit rubbish, but it does its job. :v:





(click for huge)

The application can be monitored via Grafana, and the application itself pushes new data via a (very simple) pub/sub-system (over WebSockets) to all connected browsers. There is some more stuff happening in the background, but it gives me something to fiddle around with that actually produces a visible result, so that's fun.

Hollow Talk fucked around with this message at 00:14 on Nov 18, 2021

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply