Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411504 Posts in 69373 Topics- by 58429 Members - Latest Member: Alternalo

April 25, 2024, 04:15:10 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsPreservation
Pages: [1]
Print
Author Topic: Preservation  (Read 2482 times)
Gagege
Level 1
*



View Profile WWW
« on: May 24, 2010, 09:28:26 AM »

Hello, I have been trying for a while to decide whether or not to start a devlog for this game. I didn't want to start a devlog and then have the project fail. A lot of you probably know what I mean. Smiley

Well I finally decided that it would be better to get this out there than to sit on it for a long time trying to get it to a presentable level.

I'm working on a game that is about preserving cultures. There will be figures on the screen that differ randomly in shape, color, size and movement. They may also have a random design in their middle.

Here is a mockup I made a while ago.

Basically, your goal is to try to cultivate as many cultures as possible while keeping them from becoming stagnant. If they become stagnant the personalities contained within them begin to fight and eventually kill each other.

You can either let cultures create themselves as they move around the playing field or you can draw a temporary wall with your mouse around a bunch of personalities and make them gravitate towards each other. To stop cultures from stagnating you need to add new personalities to them.

A personality's size is directly related to the influence it has on other personalities. That huge yellow triangle, if it gets near other personalities, will quickly start to make them exactly like itself instead of letting them slowly change each other.

Below is what I have done so far.


Notice the smooth OpenGL rendering...  Well, hello there!

Development tools:
Visual Studio 2008
C++
SDL
OpenGL


I was just working on getting the personalities setup nicely. Now I just have to finish the culture manager class. I'll post more then.
« Last Edit: May 24, 2010, 11:32:26 PM by Gagege » Logged

blog
Soli Deo Gloria
Pineapple
Level 10
*****

~♪


View Profile WWW
« Reply #1 on: May 24, 2010, 02:32:14 PM »

This looks like it could be a uniquely fun game if the mechanics are well polished.
Logged
Gagege
Level 1
*



View Profile WWW
« Reply #2 on: May 24, 2010, 11:30:56 PM »

New screenshot:


Those numbers on the side are for debugging. They represent the average between those three figures(personalities) you see. Red, green and blue are the color levels and the "p" ones are the points in the geometry of the figures. Each figure has 12 points but I just have them set up in the default constructor to be orange squares right now. Those numbers really are the average, honest!

I got a lot of work done on the culture class today. Those three personalities are part of one culture and they are moved(no, they don't move yet), drawn and have their average calculated by it now. Next thing i'll work on is having the personalities normalize to their average.
Logged

blog
Soli Deo Gloria
Gagege
Level 1
*



View Profile WWW
« Reply #3 on: May 25, 2010, 09:52:40 AM »

Ok, so I made some good progress so far today. I wrote the code that normalizes the personalities to the average between them. Here is a video of it:



I'm have a problem with it though. Sometimes my GL_POLYGON will "skip" a vertex and just draw a straight line between the previous and next vertex. At the very beginning of the video if you look near the lowest vertex of the blue polygon you can see how the color blue is spilling outside of the polygon's outline.
 
Question:
Has anyone else has had problems with openGL "skipping" vertices? If so, do you know what's causing it or how I can fix it?

I'm going to post about this over in the help forum also.
Logged

blog
Soli Deo Gloria
droqen
Level 10
*****


View Profile WWW
« Reply #4 on: May 25, 2010, 10:49:15 AM »

This sounds seriously awesome o:

Do you know yet if this is going to be a sandbox, a level-challenge-based thing, or something else?

In any case: the idea seems really unique and I hope you go places with it :3
Logged

Gagege
Level 1
*



View Profile WWW
« Reply #5 on: May 25, 2010, 10:54:51 AM »

Thank you! Smiley
I was thinking of having challenge based levels.
Two examples of these would be:

-Preserve x amount of cultures for x amount of time

-Make a culture that looks like x personality (a prototype). Then you're graded on how much your culture resembles the prototype.

Edit: I improved the vertex "skipping" problem by the way. Turns out GL_POLYGONS don't do concave. I turned the personalities into a series of connected GL_TRIANGLES and now the personalities have a lot more flexibility.
« Last Edit: May 25, 2010, 01:21:17 PM by Gagege » Logged

blog
Soli Deo Gloria
droqen
Level 10
*****


View Profile WWW
« Reply #6 on: May 25, 2010, 12:39:09 PM »

Ahh. Yeah, polygons don't do that.

Also I think you made a typo: "can't don't do"?


That sounds pretty good
---> but I hope you include a sandbox mode Smiley
Logged

Gagege
Level 1
*



View Profile WWW
« Reply #7 on: May 27, 2010, 10:33:23 AM »

I got the code that randomizes personalities working somewhat. It took me two tries. The first try involved a loop but I quickly realized that it wouldn't work when the points of my random polygon were way too random resulting in some really crazy looking personalities(sorry I didn't take a screenshot of it). For my second try I'm entering random numbers line by line for each point so that I can confine each point to it's own little area and "massage" their randomness.

Well, it's going to need some more massaging because now they don't seem random enough.
Here are a few examples:

At least there is some nice variance in color.

They'll need a bit of work but they'll do for now. I think I could spend forever trying to get them to look right so I have to stop myself.

Time to move on to other things.
Logged

blog
Soli Deo Gloria
Gagege
Level 1
*



View Profile WWW
« Reply #8 on: May 29, 2010, 02:11:06 PM »

Three random personalities, looking better.


Not much to talk about for this update. I've mostly been doing some code organization and planning stuff. The personalities can now grow and shrink though. That's the main difference. Oh and their outlines are 0.5 units wider.
Logged

blog
Soli Deo Gloria
baconman
Level 10
*****


Design Guru


View Profile WWW
« Reply #9 on: May 29, 2010, 03:05:24 PM »

Some kind of "leader/follower" concept would give this idea more balance - some kind of medium-sized shape that's also largely influencial (in a mutually beneficial way), but not as prone to changing, itself. As more similar ones flock together, the bigger they all grow from being around one another, but "leader" figures are nearly immune from one-another's influence for awhile - you'd have to isolate* and "shrink" them as a result, before they could be reinfluenced.

*By "isolate," I mean have it close to alone, but still surrounded, well-within the opposing influences' range. This way, it would have to "shrink itself" just to move around. Being totally alone with space to grow will probably result in it naturally becoming "the colossal triangle."

And while the players can shape/manipulate the "leader" figures, the fact will remain that many "follower" figures are nigh-uninfluencable (IE: you can't drag/move them directly, only consequently by moving their "leader" figure), until grown to a certain size. So the catch becomes that you have to "bond" followers to leaders to build (a few of) them into more leaders, and then get them rearranged and reinfluenced before they all stagnate into sameness. And followers' mobility will be considerably nerfed compared to leaders' potential, so when a leader moves, it's likely some will be left behind.

A universal range limit will force highly-populated followers to "fight one another" for available space within their leaders, and as leaders overgrow, it will push more of that space out. So the bigger and more influencial a leader gets, the more consequently dangerous it becomes to it's once-loyal followers; and to the followers altogether, since they'll be more strongly influenced as a result of it's bigger size. To effectively use a bigger range, it will have to develop more leaders that work together. (IE: create "multiple-culture communities," which in turn may be partially influenced in different directions in regards to other leadership figures in different vicinities.)


If you're looking for more abstract shaping, you can restrict the angles to being all 45-degree or 30-degree multiple variants - so that way, the more multi-sided figures (like the 12/13-siders depicted) will *have to* have more convex/concave variety in shape about them, and remain visually differenciating. I would say something about varying their edge length, but that appears to be how you're varying their size. Polygons with longer OR more numerous sides will naturally result in bigger, and thus more influencial figures - but the leader/follower dynamic will increase in proportion with that as well. So a 12-sider "follower" could very well be bigger than a 5-sided "leader" to start, for instance - but as the edge length increases with influence, that could even out or work to the advantage of the 5-sider.

Finally, when faced with a "choice" (like an overlapping Venn Diagram), a follower will always choose to follow the leader that's more similar to itself. So a 6-sider (small, naturally) has the choice between following a 5-sider or an 8-sider, it will consider difference in sides, angles, colors, and edge-length - and then go with the one that's most like itself.

(This part disregards the important "real life" influence of teen angst/rebellion - where it would naturally choose to go with the on LEAST like it's current self, but this isn't necessarily some visual-spacial relation to real human culture, is it?)
__________

If you want something -really- wicked, you can also add a breeding influence, too - ones well within the "culture" will produce more culture-specific breeds, where ones on the outsides will result in more cross-breeds (which when given space, can result in more leaders), but that's getting way ahead of this, maybe.
« Last Edit: May 29, 2010, 03:28:25 PM by baconman » Logged

Gagege
Level 1
*



View Profile WWW
« Reply #10 on: May 30, 2010, 07:07:55 AM »

Thank you for the write up. It's nice to ponder some design suggestions since I've mostly been concentrating on the technical side so far.

Some kind of "leader/follower" concept would give this idea more balance - some kind of medium-sized shape that's also largely influencial (in a mutually beneficial way), but not as prone to changing, itself. As more similar ones flock together, the bigger they all grow from being around one another, but "leader" figures are nearly immune from one-another's influence for awhile - you'd have to isolate* and "shrink" them as a result, before they could be reinfluenced.

*By "isolate," I mean have it close to alone, but still surrounded, well-within the opposing influences' range. This way, it would have to "shrink itself" just to move around. Being totally alone with space to grow will probably result in it naturally becoming "the colossal triangle."

This is something I've thought about before, although I hadn't fleshed it out as much as this. Basically, if an influential personality is left in isolation it is currently useless, having nothing to influence. It will seek out followers though. If an influential personality is in a culture (or "has followers") it will grow to a size determined by the number of followers it has, which will in turn allow it to "fit" more followers in to it's culture.
Also, cultures will be required to have a leader (no anarchies, I don't think a pure anarchy in the real world is possible anyway). If a leader dies or leaves the personality with the next most influence to be the new leader of that culture.

Quote
And while the players can shape/manipulate the "leader" figures, the fact will remain that many "follower" figures are nigh-uninfluencable (IE: you can't drag/move them directly, only consequently by moving their "leader" figure), until grown to a certain size. So the catch becomes that you have to "bond" followers to leaders to build (a few of) them into more leaders, and then get them rearranged and reinfluenced before they all stagnate into sameness. And followers' mobility will be considerably nerfed compared to leaders' potential, so when a leader moves, it's likely some will be left behind.

I love this idea. It adds a lot of interactivity to a design that is sorely lacking in the "player" aspect. Leaders will be clearly designated by some kind of marking or different color outline.

Quote
A universal range limit will force highly-populated followers to "fight one another" for available space within their leaders, and as leaders overgrow, it will push more of that space out. So the bigger and more influencial a leader gets, the more consequently dangerous it becomes to it's once-loyal followers; and to the followers altogether, since they'll be more strongly influenced as a result of it's bigger size. To effectively use a bigger range, it will have to develop more leaders that work together. (IE: create "multiple-culture communities," which in turn may be partially influenced in different directions in regards to other leadership figures in different vicinities.)

My idea for fighting in the game had been strictly intra-culture. But, your idea of "multiple-cultural communities" is cool. It's something I'll definitely think about.

Quote
If you want something -really- wicked, you can also add a breeding influence, too - ones well within the "culture" will produce more culture-specific breeds, where ones on the outsides will result in more cross-breeds (which when given space, can result in more leaders), but that's getting way ahead of this, maybe.

I've actually put a breeding mechanic in to the design already and it's actually pretty simple compared to the other interactions I have planned.
Logged

blog
Soli Deo Gloria
Gagege
Level 1
*



View Profile WWW
« Reply #11 on: November 28, 2010, 01:31:58 PM »

It's been a while!

I got a programming job that has been keeping me very occupied. This game is going to take a while to make!

-Yesterday I added camera scrolling with the arrow keys and camera zooming with the mouse wheel.

This is the first time I've worked on this since right before getting my new job. Hopefully today I'll have some nice enhancements to show you guys.

Also, I GitHub'd the source code. Have a look if you want:
https://github.com/Gagege/Preservation
Logged

blog
Soli Deo Gloria
Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic