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
Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe
I've often had times just getting used to basic geometry, because I'm an idiot and it's hard to find a good reference. Is it more about the computational grittiness, or does it go over the theory / math of arbitrary intersecting polygons as well?

Adbot
ADBOT LOVES YOU

Dred_furst
Nov 19, 2007

"Hey look, I'm flying a giant dong"

Suspicious Dish posted:

I've often had times just getting used to basic geometry, because I'm an idiot and it's hard to find a good reference. Is it more about the computational grittiness, or does it go over the theory / math of arbitrary intersecting polygons as well?

The bulk of the book talks about intersecting arbitrary convex shapes. It'll tell you how to get far enough along with that to work out contact points. For concave shapes it basically recommends chopping the object into convex shapes then testing the same way. Anything more complex than this and you are heading into computational geometry territory which gets really complicated really quickly. The main strategy for detecting the collisions of static items is done through a separating axis test.

If you take apart Monogame or SharpDX, you'll see a lot of references to that book.

Also don't feel bad, I'm still learning this stuff and it still makes my head hurt.

HappyHippo
Nov 19, 2003
Do you have an Air Miles Card?
I updated my scorched earth clone with some new stuff plus an actual title screen. Looking a lot more like a finished project now.

Any bug reports/suggestions welcome

Xerophyte
Mar 17, 2008

This space intentionally left blank
I second the recommendation for Real-Time Collision Detection as a good book to own if occasionally you need to know how to intersect things with other things. Other than papers newer than the actual book it covers pretty much anything on the subject you could want. I'd also recommend looking at Real Time Rendering's collision algorithm matrix but a lot of the entries reference things in RTR or RTCD, and a lot of the paper links are stale. Still, it should at least help you find the right pdf elsewhere.

Shalinor
Jun 10, 2002

Can I buy you a rootbeer?

HappyHippo posted:

I updated my scorched earth clone with some new stuff plus an actual title screen. Looking a lot more like a finished project now.

Any bug reports/suggestions welcome
Just played it for 5 rounds, so I'd say it's pretty dang fun. Will be better with sounds and little "from hell's heart!" quotes, but it's fun as-is.

KICK BAMA KICK
Mar 2, 2009

HappyHippo posted:

I updated my scorched earth clone with some new stuff plus an actual title screen. Looking a lot more like a finished project now.

Any bug reports/suggestions welcome

It is real fun. Three points:

I was getting hella one-shotted by medium opponents.
But I did see them futilely firing shots off the edge of the screen that didn't appear to be wrapping around to the other side -- so maybe there's a problem either with shots wrapping, or with AI calculation of such attempts.
And a minus button on the buying screen would be nice.

Maide
Aug 21, 2008

There's a Starman waiting in the sky...

HappyHippo posted:

I updated my scorched earth clone with some new stuff plus an actual title screen. Looking a lot more like a finished project now.

Any bug reports/suggestions welcome

I've ran it with 10 max difficulty AIs fighting each other with crazy settings for a few hours now, and it's great fun to watch. Player 2 is overpowered, from the simulations I've ran.

captain_g
Aug 24, 2007
Couple of weeks ago I started making planets using gimp. I decided that making planets was too much work, so I went procedural and here is the result:


I finally managed to get atmospheric scattering right. In fact I should make that into a libgdx library and finally answer my own stackoverflow question from a year ago:
http://gamedev.stackexchange.com/questions/50373/atmospheric-scattering-sky-from-space-artifacts

The problem was moving either planet or camera. The original shaders make the assumption that the planet is at 0, 0, 0. When you adjust camera position or planet position, you just need to ensure that it holds true and make other calculations account for it.

Right now I need to focus on gameplay rather than fancy stuff, but in future I'll also add support for gas giants. Right now it only supports basic earth-like planets with various colors. (BTW: progress can be seen here: http://spacegamedev.tumblr.com/)

captain_g fucked around with this message at 12:13 on Apr 27, 2014

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

Shalinor posted:

Just played it for 5 rounds, so I'd say it's pretty dang fun. Will be better with sounds and little "from hell's heart!" quotes, but it's fun as-is.

Thanks

KICK BAMA KICK posted:

It is real fun. Three points:

I was getting hella one-shotted by medium opponents.
But I did see them futilely firing shots off the edge of the screen that didn't appear to be wrapping around to the other side -- so maybe there's a problem either with shots wrapping, or with AI calculation of such attempts.
And a minus button on the buying screen would be nice.

Heh, the thing that makes them medium is that they occasionally miss ;). Hard never misses unless an obstacle gets in the way, cruel is like hard but picks the highest angle shot possible to reduce the chances of hitting a mountain.

If no accurate shot is possible (usually because a cliff in the way, or due to being downwind when the wind is strong) the AI fires randomly. It looks weird but I did it to ensure that the game can end - if I applied some sort of strategy like "shoot to get as close as possible" they could get stuck in a loop of two AIs missing each other forever.

Did you mean you want to sell items? I hadn't thought of that but I kinda like that you have to make a choice without being able to go back on it.

Maide posted:

I've ran it with 10 max difficulty AIs fighting each other with crazy settings for a few hours now, and it's great fun to watch. Player 2 is overpowered, from the simulations I've ran.

Yeah it can be fun to just watch them, especially when the power level is high. I can't think of a reason why any player would be more powerful from the beginning of a game, but once a player gets the lead they tend to keep it since they have more money to buy weapons/defences.

FormatAmerica
Jun 3, 2005
Grimey Drawer

Maide posted:

I've ran it with 10 max difficulty AIs fighting each other with crazy settings for a few hours now, and it's great fun to watch. Player 2 is overpowered, from the simulations I've ran.

I left it running all night just to see what would happen:

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

Maide posted:

I've ran it with 10 max difficulty AIs fighting each other with crazy settings for a few hours now, and it's great fun to watch. Player 2 is overpowered, from the simulations I've ran.

I take it back, the naive algorithm I used to shuffle the player order is biased. I've replaced it with the correct one now, so that should be more fair. Good catch!

KICK BAMA KICK
Mar 2, 2009

HappyHippo posted:

Did you mean you want to sell items? I hadn't thought of that but I kinda like that you have to make a choice without being able to go back on it.
Not even selling an item purchased in a previous round, just undoing an extra click or mental miscalculation or whatever.

Scaevolus
Apr 16, 2007

HappyHippo posted:

I take it back, the naive algorithm I used to shuffle the player order is biased. I've replaced it with the correct one now, so that should be more fair. Good catch!
Hah, that was a question on the most recent Google Codejam Round-- determining if a given permutation is generated fairly or naively.

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

Scaevolus posted:

Hah, that was a question on the most recent Google Codejam Round-- determining if a given permutation is generated fairly or naively.

Yeah, that was a screw up on my part. Thing is, it works just well enough that you don't really notice it isn't fair. I did a test, look at poor player 9, most likely to play last. No wonder they were in dead last in FormatAmerica's test.

Literally Elvis
Oct 21, 2013



Lame python shell screenshot, but I wrote a script that scrapes a very specific type of wikipedia page (Billboard Hot 100 year overview pages).

And it works! Now I just need to turn these data chunks into SQL entries, which will have to wait until way late tomorrow because I can't possibly work on this at work anymore. I work as a security guard, and the work computer can handle the Python shell, but cannot handle running an SQL server alongside all the other things.

edit: forgot the obligatory apology to the gods for my filthy mortality, you guys do amazing things here

Also this is my first project in Python, the code can be found here.

Literally Elvis fucked around with this message at 06:51 on Apr 30, 2014

Kumquat
Oct 8, 2010

Literally Elvis posted:



Lame python shell screenshot, but I wrote a script that scrapes a very specific type of wikipedia page (Billboard Hot 100 year overview pages).

And it works! Now I just need to turn these data chunks into SQL entries, which will have to wait until way late tomorrow because I can't possibly work on this at work anymore. I work as a security guard, and the work computer can handle the Python shell, but cannot handle running an SQL server alongside all the other things.

edit: forgot the obligatory apology to the gods for my filthy mortality, you guys do amazing things here

Also this is my first project in Python, the code can be found here.

Do yourself a favor and get a cheap vps to host your database on.

Nippashish
Nov 2, 2005

Let me see you dance!

Kumquat posted:

Do yourself a favor and get a cheap vps to host your database on.

Alternatively, use sqlite.

Literally Elvis
Oct 21, 2013

I'm still investigating options for database stuff, and I'd like to clarify that I wasn't going to run the SQL server on my work's computer and connect to it remotely or anything. Rather, I meant simply running it so I could send local instructions via my script.

Somebody elsewhere suggested using Amazon AWS/DynamoDB for this whole project, which I'm still looking into. I have almost zero ideas of where to start with regards to databases, so yay learning experiences.

Thanks for the suggestions, though!

o.m. 94
Nov 23, 2009



Click for bigger

It's a browser "game" inspired by incremental clicker/idle games. Basically you sit there and let it run and your representative in the world goes out to harvest stuff for you. Of course, to get the rarer items, you'll need to craft items which boost your stats. These items use up items in your inventory, and you can only boost your stats so far in one direction in the game. HOWEVER, you can "soft reset" which resets your stats and clears your inventory but keeps your log of items/creatures you've discovered, so you can refocus your character on the next run to be better at getting drops from combat, rather than say, foraging. Once you collect every item, fight every monster, and get all the flavour text you get the final achievement and are free to depart this realm. I know its dumb but there are more boring ways to learn JavaScript I guess!!!!

Sergeant Baboon
Jan 2, 2013

o.m. 94 posted:



Click for bigger

It's a browser "game" inspired by incremental clicker/idle games. Basically you sit there and let it run and your representative in the world goes out to harvest stuff for you. Of course, to get the rarer items, you'll need to craft items which boost your stats. These items use up items in your inventory, and you can only boost your stats so far in one direction in the game. HOWEVER, you can "soft reset" which resets your stats and clears your inventory but keeps your log of items/creatures you've discovered, so you can refocus your character on the next run to be better at getting drops from combat, rather than say, foraging. Once you collect every item, fight every monster, and get all the flavour text you get the final achievement and are free to depart this realm. I know its dumb but there are more boring ways to learn JavaScript I guess!!!!

This sounds like fun, do you have it online somewhere that we can play it?

o.m. 94
Nov 23, 2009

Sergeant Baboon posted:

This sounds like fun, do you have it online somewhere that we can play it?

Hm I was hoping to develop this more first as like I say there's no interaction yet but to be honest if I can get critiques on my JS that would be awesome. It's using bootstrap and jQuery. The content is generated from text files and inserted dynamically, so the items can be added really quickly without having to hard code anything into the template or write a large object in code.

Here!. Please note that it is very early days and right now there is nothing you can do but sit and watch your collection grow. There is no interaction yet. Try editing CWind.Player.perception or similar between 1 and 10 and I'll increase your drop rate for certain items

Sergeant Baboon
Jan 2, 2013

o.m. 94 posted:

Hm I was hoping to develop this more first as like I say there's no interaction yet but to be honest if I can get critiques on my JS that would be awesome. It's using bootstrap and jQuery. The content is generated from text files and inserted dynamically, so the items can be added really quickly without having to hard code anything into the template or write a large object in code.

Here!. Please note that it is very early days and right now there is nothing you can do but sit and watch your collection grow. There is no interaction yet. Try editing CWind.Player.perception or similar between 1 and 10 and I'll increase your drop rate for certain items

I wish I could give useful critique, but a quick glance at the code is enough to show that you know JavaScript a hell of a lot better than I do. Sorry!

I've been wishing for a game that had the same idling mechanic as Cookie Clicker but is actually, y'know, fun, and I like the style of this game already. I'm looking forward to future updates!

mortarr
Apr 28, 2005

frozen meat at high speed
My local library has a new book display for each of their collections, like non-fiction, adult fiction, dvds etc. New books go on display for a week, and you can place a hold on them before they go out on the shelves. I always like to check out the new books, but sometimes I can't make it in that week or someone's hidden the good ones when I can get there. Anyway I've been working on a way to get a list of these new books from the library website.

As it happens, they recently changed their catalog and website software and now there's an RSS feed of all new items, so I wrote a web app to extract info from the feed, pull some extra info and also to help weed out some of the stuff I'm not interested in, like childrens books or foreign language writing.

This is the first project I've done that's worth posting here, and I've been using it to learn git and to test out appharbor - I spent a lot of time working out a good enough way to generate my database objects inside my apps sql instance, because getting the actual error info was like pulling teeth.

My scheme for taking each item in the rss feed and getting extra info from the library site is the biggest bottleneck at the moment, if anyone feels like taking a look at my code.

Source here, in action here.

Anyway, screenshot!

Sirocco
Jan 27, 2009

HEY DIARY! HA HA HA!
Here's a little game I'm working on to teach myself more about Python. It's sort of designed around half-memories of a game I played when I was wee called SimCinema Deluxe where you hired actors, wrote a little plot summary and then bought advertisements to promote your film. My version's a bit more fleshed out in gameplay mechanics, though most of them aren't fully realised yet because I've not done the filming/release part yet.



The only thing I've been completely stumped on so far is changing the font of the menubar. Still, I'm pretty pleased with it as a first 'major' project.

Careful Drums
Oct 30, 2007

by FactsAreUseless

mortarr posted:

My local library has a new book display for each of their collections, like non-fiction, adult fiction, dvds etc. New books go on display for a week, and you can place a hold on them before they go out on the shelves. I always like to check out the new books, but sometimes I can't make it in that week or someone's hidden the good ones when I can get there. Anyway I've been working on a way to get a list of these new books from the library website.

As it happens, they recently changed their catalog and website software and now there's an RSS feed of all new items, so I wrote a web app to extract info from the feed, pull some extra info and also to help weed out some of the stuff I'm not interested in, like childrens books or foreign language writing.

This is the first project I've done that's worth posting here, and I've been using it to learn git and to test out appharbor - I spent a lot of time working out a good enough way to generate my database objects inside my apps sql instance, because getting the actual error info was like pulling teeth.

My scheme for taking each item in the rss feed and getting extra info from the library site is the biggest bottleneck at the moment, if anyone feels like taking a look at my code.

Source here, in action here.

Anyway, screenshot!


This is cool little project! I've been looking at .NET hosting, how is appharbor? Do they provide a db on the free service?

mortarr
Apr 28, 2005

frozen meat at high speed

Careful Drums posted:

This is cool little project! I've been looking at .NET hosting, how is appharbor? Do they provide a db on the free service?

Thanks!

I'm using their free sql server plan which gives 20mb of storage and sql management access, but there are other db options like mysql etc, and there are other add-ons too like memcache, mailgun, and stuff for full text search among others. Each add-on has different service levels although not all have a free option.

I've never built a hosted app before, and working out how to get meaningful errors out of the sql server was a bit of a pain, but I really like how it works with github to update itself with your latest commits.

Internet Janitor
May 17, 2008

"That isn't the appropriate trash receptacle."
Crossposting some progress I've been making on my programming puzzle game:



Graphics are starting to get a lot less placeholder-ey.

Internet Janitor fucked around with this message at 04:22 on May 8, 2014

clockwork automaton
May 2, 2007

You've probably never heard of them.

Fun Shoe


A really simple rogue-like in rust - hilariously enough my first step of writing this was making sure that the ncurses bindings lib compiled again with the nightly.

Pollyanna
Mar 5, 2005

Milk's on them.


clockwork automaton posted:



A really simple rogue-like in rust - hilariously enough my first step of writing this was making sure that the ncurses bindings lib compiled again with the nightly.

I think there was a library called amulet that handled curses for Rust.

clockwork automaton
May 2, 2007

You've probably never heard of them.

Fun Shoe

Pollyanna posted:

I think there was a library called amulet that handled curses for Rust.

Yeah, it was one of the ones I tried in trying to find one that compiled, but it was last updated 7 months ago so it was too far from being compilable. The one I used was like a week old and still didn't compile out of the box (and actually after me updating it yesterday the examples don't compile today since it depends on the nightly build for some things). Basically, it's sorta a nightmare and I'm sad they got rid of rustpkg, but I guess it just wasn't working for them.

parkov
May 4, 2005
Vintage Ahoy!
I'm close to finishing up a clipboard/launcher utility for terminal commands.

Been going back and forth on the color palette, but settled on a dark look for now...

parkov fucked around with this message at 03:16 on May 11, 2014

ambushsabre
Sep 1, 2009

It's...it's not shutting down!

parkov posted:

I'm close to finishing up a clipboard/launcher utility for terminal commands.

Been going back and forth on the color palette, but settled on a dark look for now...



Can you make this a dropdown from an icon on the top right, with sound and dropbox and all that? That would be ultra useful.

e: also, plans on making it open source?

e2: ok thinking about it this is a genius and awesome idea, amazing work man. if it's open source I'd love to help out a little bit!

ambushsabre fucked around with this message at 18:01 on May 11, 2014

parkov
May 4, 2005
Vintage Ahoy!

ambushsabre posted:

Can you make this a dropdown from an icon on the top right, with sound and dropbox and all that? That would be ultra useful.

e: also, plans on making it open source?

e2: ok thinking about it this is a genius and awesome idea, amazing work man. if it's open source I'd love to help out a little bit!

A menu extra would definitely be handy, but right now it's implemented as a standalone app using node-webkit.

I do plan on open sourcing it, especially if that means others will improve on it! I'll post an update when it's ready for release.

Internet Janitor
May 17, 2008

"That isn't the appropriate trash receptacle."

Sinestro
Oct 31, 2010

The perfect day needs the perfect set of wheels.
I don't want to be mean, but that font on the stone is aggressively unreadable.

kayakyakr
Feb 16, 2004

Kayak is true

Sinestro posted:

I don't want to be mean, but that font on the stone is aggressively unreadable.

Gotta agree with that. I thought it was runes or some crap that, not meant to be read.

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe
peperony and chease

Internet Janitor
May 17, 2008

"That isn't the appropriate trash receptacle."
It's something that I am still tinkering with, but it is not intended to be read at first.

To take an example from another game, Fez features a made-up ingame alphabet which is initially unintelligible. Eventually you find a key for decoding it and then you can laboriously decode inane messages around the world. I liked that idea, but I didn't like dragging the player through decoding after they've had the "aha!" moment, so I wanted to try to come up with a weird font that is similar enough to english to be legible once you recognize what it is.

I'm not at all married to the idea, so I might still take it in a different direction.

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe
The fact that it's close enough to our alphabet but still illegible makes it more annoying to decode, not less.

Adbot
ADBOT LOVES YOU

Zaphod42
Sep 13, 2012

If there's anything more important than my ego around, I want it caught and shot now.

Internet Janitor posted:

It's something that I am still tinkering with, but it is not intended to be read at first.

To take an example from another game, Fez features a made-up ingame alphabet which is initially unintelligible. Eventually you find a key for decoding it and then you can laboriously decode inane messages around the world. I liked that idea, but I didn't like dragging the player through decoding after they've had the "aha!" moment, so I wanted to try to come up with a weird font that is similar enough to english to be legible once you recognize what it is.

I'm not at all married to the idea, so I might still take it in a different direction.

The Sims did this with their sorta madeup language, and it was kinda cool.

I'd agree with Dish that it'd be better to just make up your own symbols and have them be totally foreign though, so long as you can be creative enough that the symbols are clearly distinct.

Also if you're gonna go down that route, make sure its only fun secrets and easter eggs and gags and stuff, not major important game clues. If you decode something you didn't have to for a fun joke or a secret, that's cool, but if you have to only to get "go to X" or "drink more ovaltine" its just frustrating.

Probably assume most gamers won't even try. Its unbelievable how lazy gamers are now. :smith: Back in my day we had to...

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