Jump to content

Oddly

Ascending Contributor
  • Posts

    484
  • Joined

  • Last visited

  • Days Won

    36

Reputation Activity

  1. Haha
    Oddly got a reaction from Jcy in Orake needs a hacker (paid)   
    Pass, hacking ain't my thing anymore.
  2. Haha
    Oddly reacted to Gibier in Today I did this on my project...   
    So I present you my new future abandoned project
     

  3. Like
    Oddly got a reaction from XFallSeane in Intersect Connect new website !   
    I actually think this is a cool idea. I always felt like in a way intersect could benefit from using a "public server list" type of model, where a game's contents could be downloaded simply by selecting a game.
     
  4. Thanks
    Oddly reacted to XFallSeane in Intersect Connect new website !   
    Update at 2023-09-27
     
    Hello everyone,
     
    Intersect Connect is evolving, a brand new site has been created for this occasion.
     
    So, what's the beauty of all this?
     
    The first is Intersect Management, an online service that will allow you to manage your game server with your team. The service will offer all the functionalities linked to the Intersect API and will be compatible with most old and new versions.
     
    The Store changes URL and goes under https://store.intersect-connect.tk/

    The new site remains available at this address:
    https://intersect-connect.tk/
     
    Intersect Management will offer a free and paid plan for teams, this service will be launched soon (if some want to test the features already available and the one that I could not test due to lack of data in my test database, can already appear in replies or private messages.)
     
    This will be a long-term project.
     
    I hope to have your support and see you using Intersect Management.
    Enjoy !
    -----------------------------------------------------

    Hello everyone,
     
    I present to you my latest application "Intersect Connect".
     
    This application will allow game developers to publish their games on the platform in a simple and free way, to allow players to download and play many games in one place, the application requires no registration for players as well as developers.
     

     

     
    The features of the application are basic for the moment:
    list of games, List of games installed, Install a game, Uninstall a game, View game news  
    No game update functionality has been implemented and is not currently planned, so you will need to have your own means of updating.
     
    If you are a developer, you can watch the submission tutorial for your games by create an account here
     
    Download Intersect Connect now !
  5. Like
    Oddly reacted to Arufonsu in Linear Interpolation Explained   
    wow, you just summarized half of my calculus semester from last year in a single post, plus, is pretty well explained and goes straight to the point 
    thanks a lot for this, "lerp" in game dev makes way more sense to me now
  6. Thanks
    Oddly got a reaction from Arufonsu in Linear Interpolation Explained   
    Making this guide for @Damian666 but, honestly, it's a pretty important thing to know in game dev, so today I'll be explaining Linear Interpolation.

    So first off, What is Linear Interpolation?
    Linear Interpolation (Lerp for short in game dev lingo) is the process of finding any point on a given line, given any value of X.
    A question that may be in the form of solving for Linear Interpolation may look something like.

    "Given the line (A, B), what is the value of Y at X on that line?"

    It's important to remember, when we say "LINEAR" interpolation, or "LINEAR" algebra, we're talking about working on straight lines. So that's just a tip for anything dealing with linear mathematics, is they all deal with straight lines. (finding Y at X on a straight line is linear interpolation).

    Linear means "Straight Line" and "Interpolation" means "the insertion of something of a different nature into something else."

    So when you are doing "Linear Interpolation" You are Linearly inserting a new point between 2 points. Linear Interpolation is inserting a new point between 2 points on a straight line.

    Solving for Y at X is doing Linear Interpolation. Basically I have a set of X and Y values. They are dependent variables. The value of Y is dependent on the value of X.
    So, If I have a table as so:

    __X_____Y__
    __1__ | __4__ < ---- Point A
    __2__ | __?__
    __3__ | __?__
    __4__ | __16__ < ----- Point B

    When X is 1, Y will be 4
    When X is 4, Y will be 16.

    Linear interpolation is solving for Y at X. If X is 3 in this table, Y is 12.

    I graphed this table in a graphing calculator. Unfortunately values only went from -10 to 10, so I set Point A=(1, 4) and Point B = (2, 8), but it's the same graph, I just used different points on the same line to draw the graph. Basically when doing linear interpolation, you can solve for any Y value on this line given any X and 2 other points on the same line. That is what Linear Interpolation is for. To find other points on the same line.


    We need to solve for Y at X=2, and solve for Y when X=3. Which we use the equation of Linear Interpolation to do.

    The Equation for Linear Interpolation is


    Where
    X1, Y1 is the start_point (Point A);
    X2, Y2 is the end_point (Point B);
    X is an independent variable; (an argument or parameter) you feed into the function
    The function solves for Y at X.

    If you solve for...
    (X1,Y1) = (1, 4),
    (X2, Y2) = (4, 16),
    X =2
    Y will equal 8.

    if you say X is 3,
    (X1,Y1) = (1, 4),
    (X2, Y2) = (4, 16),
    Y will equal 12

    To break down the function further... You can imagine the function is sort of generating a ratio. "For each X so amount of Y will be given".
    That is this part of the function: (y2-y1)/(x2-x1)

    This ratio is also known as the "Slope" of the line. This part might be more familiar to you from high school math as:

    (fun fact; In this image the Triangle symbol is called "Delta" and whenever you see it, it usually means "the difference between", you'll see it in programming too. "DeltaTime" means "The difference between 2 times" In this image, Delta X and Delta Y mean "The difference between 2 X's and Y's)

    We use the start and end point to calculate the slope.

    The rest of the equation y1+(x-x1) is applying an offset to our new value X. (since our line isn't always at point 0, 0 in our equation, when calculating y we need to account that we're applying an offset.
     
    The Function for Linear Interpolation in Python code would look like the following:
    # Solve for Y at point X given line (x1, y1), (x2, y2) def get_interpolate(start_point, end_point, x): x1, y1 = start_point x2, y2 = end_point y = y1+(x-x1)*((y2-y1)/(x2-x1)) return y In the GIF below, The Red Dots are the start and end points. The red line shows the linear sequence of all values of Y at any Given X between the Start and End Points. And the Blue Dot is the linear interpolate at any specific given X along the red line.

    (red line = every possible linear interpolate, blue dot = 1 linear interpolate at a time)

    In this GIF, Each frame I am increasing or decreasing the value of X by 1, and solving for Y using the python function I posted above to get the Y of the blue dot at X. When the blue dot hits the start or end point, I'm multiplying the incrementor by -1 to switch the blue dot's direction. This way you can see how the value of Y changes as X changes.

    Note: Because I am using pygame, the grid position (0, 0) starts in the upper left hand corner.


    Values: (X1, Y1) = (2, 3), (X2, Y2) = (15, 15)
     
    Alright, and finally, in order to make that gif, I actually used Python and PyGame to program some code that does Linear Interpolation to help you understand it better. Here is the snippet for that code:
    https://gitlab.com/-/snippets/2252356

    Enjoy!

    P.S. I punched the equation into a graphing calculator for you too... The line you see is not the same thing as I coded, the line is Y at any given X. If you change the x1, y1, x2, y2 variables, the line will move because you're moving your start point and end point.
    https://www.desmos.com/calculator/jg3pfrrkqa

    "Lerping" in game design makes use of linear interpolation by calculating how much of a jump a game object needs to be transformed each frame to insure a smooth sliding transition from Point A to Point B in a given frame of time.

    I.E. How big of steps do I need to take If I want to take 1 evenly spaced step each second, in order to move 30 feet forward in straight line in exactly 30 seconds?

    That's what Lerping is solving for. You can avoid calculating that average "step size" between point A and B to add each frame to your current position using Linear Interpolation, You can set a game object's position at any point of time by simply calculating where Y should be given X and 2 other points.
  7. Like
    Oddly got a reaction from Damian666 in Linear Interpolation Explained   
    I gotta learn it anyway, so ill make a tutorial when I wrap my head around that. Typically you learn linear algebra before non-linear because straight lines are easier to visual.
  8. Thanks
    Oddly got a reaction from Damian666 in Linear Interpolation Explained   
    Making this guide for @Damian666 but, honestly, it's a pretty important thing to know in game dev, so today I'll be explaining Linear Interpolation.

    So first off, What is Linear Interpolation?
    Linear Interpolation (Lerp for short in game dev lingo) is the process of finding any point on a given line, given any value of X.
    A question that may be in the form of solving for Linear Interpolation may look something like.

    "Given the line (A, B), what is the value of Y at X on that line?"

    It's important to remember, when we say "LINEAR" interpolation, or "LINEAR" algebra, we're talking about working on straight lines. So that's just a tip for anything dealing with linear mathematics, is they all deal with straight lines. (finding Y at X on a straight line is linear interpolation).

    Linear means "Straight Line" and "Interpolation" means "the insertion of something of a different nature into something else."

    So when you are doing "Linear Interpolation" You are Linearly inserting a new point between 2 points. Linear Interpolation is inserting a new point between 2 points on a straight line.

    Solving for Y at X is doing Linear Interpolation. Basically I have a set of X and Y values. They are dependent variables. The value of Y is dependent on the value of X.
    So, If I have a table as so:

    __X_____Y__
    __1__ | __4__ < ---- Point A
    __2__ | __?__
    __3__ | __?__
    __4__ | __16__ < ----- Point B

    When X is 1, Y will be 4
    When X is 4, Y will be 16.

    Linear interpolation is solving for Y at X. If X is 3 in this table, Y is 12.

    I graphed this table in a graphing calculator. Unfortunately values only went from -10 to 10, so I set Point A=(1, 4) and Point B = (2, 8), but it's the same graph, I just used different points on the same line to draw the graph. Basically when doing linear interpolation, you can solve for any Y value on this line given any X and 2 other points on the same line. That is what Linear Interpolation is for. To find other points on the same line.


    We need to solve for Y at X=2, and solve for Y when X=3. Which we use the equation of Linear Interpolation to do.

    The Equation for Linear Interpolation is


    Where
    X1, Y1 is the start_point (Point A);
    X2, Y2 is the end_point (Point B);
    X is an independent variable; (an argument or parameter) you feed into the function
    The function solves for Y at X.

    If you solve for...
    (X1,Y1) = (1, 4),
    (X2, Y2) = (4, 16),
    X =2
    Y will equal 8.

    if you say X is 3,
    (X1,Y1) = (1, 4),
    (X2, Y2) = (4, 16),
    Y will equal 12

    To break down the function further... You can imagine the function is sort of generating a ratio. "For each X so amount of Y will be given".
    That is this part of the function: (y2-y1)/(x2-x1)

    This ratio is also known as the "Slope" of the line. This part might be more familiar to you from high school math as:

    (fun fact; In this image the Triangle symbol is called "Delta" and whenever you see it, it usually means "the difference between", you'll see it in programming too. "DeltaTime" means "The difference between 2 times" In this image, Delta X and Delta Y mean "The difference between 2 X's and Y's)

    We use the start and end point to calculate the slope.

    The rest of the equation y1+(x-x1) is applying an offset to our new value X. (since our line isn't always at point 0, 0 in our equation, when calculating y we need to account that we're applying an offset.
     
    The Function for Linear Interpolation in Python code would look like the following:
    # Solve for Y at point X given line (x1, y1), (x2, y2) def get_interpolate(start_point, end_point, x): x1, y1 = start_point x2, y2 = end_point y = y1+(x-x1)*((y2-y1)/(x2-x1)) return y In the GIF below, The Red Dots are the start and end points. The red line shows the linear sequence of all values of Y at any Given X between the Start and End Points. And the Blue Dot is the linear interpolate at any specific given X along the red line.

    (red line = every possible linear interpolate, blue dot = 1 linear interpolate at a time)

    In this GIF, Each frame I am increasing or decreasing the value of X by 1, and solving for Y using the python function I posted above to get the Y of the blue dot at X. When the blue dot hits the start or end point, I'm multiplying the incrementor by -1 to switch the blue dot's direction. This way you can see how the value of Y changes as X changes.

    Note: Because I am using pygame, the grid position (0, 0) starts in the upper left hand corner.


    Values: (X1, Y1) = (2, 3), (X2, Y2) = (15, 15)
     
    Alright, and finally, in order to make that gif, I actually used Python and PyGame to program some code that does Linear Interpolation to help you understand it better. Here is the snippet for that code:
    https://gitlab.com/-/snippets/2252356

    Enjoy!

    P.S. I punched the equation into a graphing calculator for you too... The line you see is not the same thing as I coded, the line is Y at any given X. If you change the x1, y1, x2, y2 variables, the line will move because you're moving your start point and end point.
    https://www.desmos.com/calculator/jg3pfrrkqa

    "Lerping" in game design makes use of linear interpolation by calculating how much of a jump a game object needs to be transformed each frame to insure a smooth sliding transition from Point A to Point B in a given frame of time.

    I.E. How big of steps do I need to take If I want to take 1 evenly spaced step each second, in order to move 30 feet forward in straight line in exactly 30 seconds?

    That's what Lerping is solving for. You can avoid calculating that average "step size" between point A and B to add each frame to your current position using Linear Interpolation, You can set a game object's position at any point of time by simply calculating where Y should be given X and 2 other points.
  9. Like
    Oddly got a reaction from Mighty Professional in Linear Interpolation Explained   
    Making this guide for @Damian666 but, honestly, it's a pretty important thing to know in game dev, so today I'll be explaining Linear Interpolation.

    So first off, What is Linear Interpolation?
    Linear Interpolation (Lerp for short in game dev lingo) is the process of finding any point on a given line, given any value of X.
    A question that may be in the form of solving for Linear Interpolation may look something like.

    "Given the line (A, B), what is the value of Y at X on that line?"

    It's important to remember, when we say "LINEAR" interpolation, or "LINEAR" algebra, we're talking about working on straight lines. So that's just a tip for anything dealing with linear mathematics, is they all deal with straight lines. (finding Y at X on a straight line is linear interpolation).

    Linear means "Straight Line" and "Interpolation" means "the insertion of something of a different nature into something else."

    So when you are doing "Linear Interpolation" You are Linearly inserting a new point between 2 points. Linear Interpolation is inserting a new point between 2 points on a straight line.

    Solving for Y at X is doing Linear Interpolation. Basically I have a set of X and Y values. They are dependent variables. The value of Y is dependent on the value of X.
    So, If I have a table as so:

    __X_____Y__
    __1__ | __4__ < ---- Point A
    __2__ | __?__
    __3__ | __?__
    __4__ | __16__ < ----- Point B

    When X is 1, Y will be 4
    When X is 4, Y will be 16.

    Linear interpolation is solving for Y at X. If X is 3 in this table, Y is 12.

    I graphed this table in a graphing calculator. Unfortunately values only went from -10 to 10, so I set Point A=(1, 4) and Point B = (2, 8), but it's the same graph, I just used different points on the same line to draw the graph. Basically when doing linear interpolation, you can solve for any Y value on this line given any X and 2 other points on the same line. That is what Linear Interpolation is for. To find other points on the same line.


    We need to solve for Y at X=2, and solve for Y when X=3. Which we use the equation of Linear Interpolation to do.

    The Equation for Linear Interpolation is


    Where
    X1, Y1 is the start_point (Point A);
    X2, Y2 is the end_point (Point B);
    X is an independent variable; (an argument or parameter) you feed into the function
    The function solves for Y at X.

    If you solve for...
    (X1,Y1) = (1, 4),
    (X2, Y2) = (4, 16),
    X =2
    Y will equal 8.

    if you say X is 3,
    (X1,Y1) = (1, 4),
    (X2, Y2) = (4, 16),
    Y will equal 12

    To break down the function further... You can imagine the function is sort of generating a ratio. "For each X so amount of Y will be given".
    That is this part of the function: (y2-y1)/(x2-x1)

    This ratio is also known as the "Slope" of the line. This part might be more familiar to you from high school math as:

    (fun fact; In this image the Triangle symbol is called "Delta" and whenever you see it, it usually means "the difference between", you'll see it in programming too. "DeltaTime" means "The difference between 2 times" In this image, Delta X and Delta Y mean "The difference between 2 X's and Y's)

    We use the start and end point to calculate the slope.

    The rest of the equation y1+(x-x1) is applying an offset to our new value X. (since our line isn't always at point 0, 0 in our equation, when calculating y we need to account that we're applying an offset.
     
    The Function for Linear Interpolation in Python code would look like the following:
    # Solve for Y at point X given line (x1, y1), (x2, y2) def get_interpolate(start_point, end_point, x): x1, y1 = start_point x2, y2 = end_point y = y1+(x-x1)*((y2-y1)/(x2-x1)) return y In the GIF below, The Red Dots are the start and end points. The red line shows the linear sequence of all values of Y at any Given X between the Start and End Points. And the Blue Dot is the linear interpolate at any specific given X along the red line.

    (red line = every possible linear interpolate, blue dot = 1 linear interpolate at a time)

    In this GIF, Each frame I am increasing or decreasing the value of X by 1, and solving for Y using the python function I posted above to get the Y of the blue dot at X. When the blue dot hits the start or end point, I'm multiplying the incrementor by -1 to switch the blue dot's direction. This way you can see how the value of Y changes as X changes.

    Note: Because I am using pygame, the grid position (0, 0) starts in the upper left hand corner.


    Values: (X1, Y1) = (2, 3), (X2, Y2) = (15, 15)
     
    Alright, and finally, in order to make that gif, I actually used Python and PyGame to program some code that does Linear Interpolation to help you understand it better. Here is the snippet for that code:
    https://gitlab.com/-/snippets/2252356

    Enjoy!

    P.S. I punched the equation into a graphing calculator for you too... The line you see is not the same thing as I coded, the line is Y at any given X. If you change the x1, y1, x2, y2 variables, the line will move because you're moving your start point and end point.
    https://www.desmos.com/calculator/jg3pfrrkqa

    "Lerping" in game design makes use of linear interpolation by calculating how much of a jump a game object needs to be transformed each frame to insure a smooth sliding transition from Point A to Point B in a given frame of time.

    I.E. How big of steps do I need to take If I want to take 1 evenly spaced step each second, in order to move 30 feet forward in straight line in exactly 30 seconds?

    That's what Lerping is solving for. You can avoid calculating that average "step size" between point A and B to add each frame to your current position using Linear Interpolation, You can set a game object's position at any point of time by simply calculating where Y should be given X and 2 other points.
  10. Like
    Oddly got a reaction from Mighty Professional in The Pumpkin Thread   
    Anyone else carve any sick pumpkins for haloween this year?


  11. Like
    Oddly got a reaction from Weylon Santana in The Pumpkin Thread   
    Anyone else carve any sick pumpkins for haloween this year?


  12. Like
    Oddly reacted to jcsnider in Out of Memory Error   
    You have a corrupted tileset or a tileset that is way too big in resolution I'd bet. 
  13. Like
    Oddly got a reaction from Richy in Today I did this on my project...   
    Programmed Textboxes into the UI system of Salem2D so I could make more progress on my main_menu
     

  14. Like
    Oddly got a reaction from Richy in Today I did this on my project...   
    Hadn't posted my updates for a few days.
    Made my first sprite which gave me ideas on the art style and theme of the game I'm developing
    I researched the usage of Perlin Noise Algorithms for the purpose of procedural world generation, and coded some test algorithms in python which I will be implementing into my game later written in C++.
    Learning to create land masses gave me some ideas about the mechanics of my world and how the world will be generated, which will later take temperature, pressure, humidity, etc into account in order to generate biomes. I have plans to also create some sort of seasonal-farming system now.

    Created my first walking animation. (still need to convert this into a sprite base with paper doll and wanna add animation to the hair, but thats all in good time.

     
    Started developing some world objects to kinda define an artstyle for my project, its not done but it is progress

  15. Like
    Oddly got a reaction from Zetasis in Today I did this on my project...   
    Hadn't posted my updates for a few days.
    Made my first sprite which gave me ideas on the art style and theme of the game I'm developing
    I researched the usage of Perlin Noise Algorithms for the purpose of procedural world generation, and coded some test algorithms in python which I will be implementing into my game later written in C++.
    Learning to create land masses gave me some ideas about the mechanics of my world and how the world will be generated, which will later take temperature, pressure, humidity, etc into account in order to generate biomes. I have plans to also create some sort of seasonal-farming system now.

    Created my first walking animation. (still need to convert this into a sprite base with paper doll and wanna add animation to the hair, but thats all in good time.

     
    Started developing some world objects to kinda define an artstyle for my project, its not done but it is progress

  16. Like
    Oddly got a reaction from Beast Boyz in Today I did this on my project...   
    Hadn't posted my updates for a few days.
    Made my first sprite which gave me ideas on the art style and theme of the game I'm developing
    I researched the usage of Perlin Noise Algorithms for the purpose of procedural world generation, and coded some test algorithms in python which I will be implementing into my game later written in C++.
    Learning to create land masses gave me some ideas about the mechanics of my world and how the world will be generated, which will later take temperature, pressure, humidity, etc into account in order to generate biomes. I have plans to also create some sort of seasonal-farming system now.

    Created my first walking animation. (still need to convert this into a sprite base with paper doll and wanna add animation to the hair, but thats all in good time.

     
    Started developing some world objects to kinda define an artstyle for my project, its not done but it is progress

  17. Like
    Oddly got a reaction from Beefy Kasplant in Today I did this on my project...   
    Hadn't posted my updates for a few days.
    Made my first sprite which gave me ideas on the art style and theme of the game I'm developing
    I researched the usage of Perlin Noise Algorithms for the purpose of procedural world generation, and coded some test algorithms in python which I will be implementing into my game later written in C++.
    Learning to create land masses gave me some ideas about the mechanics of my world and how the world will be generated, which will later take temperature, pressure, humidity, etc into account in order to generate biomes. I have plans to also create some sort of seasonal-farming system now.

    Created my first walking animation. (still need to convert this into a sprite base with paper doll and wanna add animation to the hair, but thats all in good time.

     
    Started developing some world objects to kinda define an artstyle for my project, its not done but it is progress

  18. Like
    Oddly got a reaction from Vio in Today I did this on my project...   
    Hadn't posted my updates for a few days.
    Made my first sprite which gave me ideas on the art style and theme of the game I'm developing
    I researched the usage of Perlin Noise Algorithms for the purpose of procedural world generation, and coded some test algorithms in python which I will be implementing into my game later written in C++.
    Learning to create land masses gave me some ideas about the mechanics of my world and how the world will be generated, which will later take temperature, pressure, humidity, etc into account in order to generate biomes. I have plans to also create some sort of seasonal-farming system now.

    Created my first walking animation. (still need to convert this into a sprite base with paper doll and wanna add animation to the hair, but thats all in good time.

     
    Started developing some world objects to kinda define an artstyle for my project, its not done but it is progress

  19. Haha
    Oddly reacted to Khaikaa in Today I did this on my project...   
    be careful dude!!! you screenshoted your password!!!!!! oh gosh I hope nobody realizes and changes your agd nickname from oddly to dodly
  20. Like
    Oddly got a reaction from Beefy Kasplant in Today I did this on my project...   
    Programmed Textboxes into the UI system of Salem2D so I could make more progress on my main_menu
     

  21. Like
    Oddly got a reaction from Vio in Today I did this on my project...   
    Lots of UI Development work today, designed some screens and also programmed responsive components in Salem2D. Removed JSON ui scripting and split things up into UI-Populator classes, and the code came out really clean. Bout to start working on textboxes and then I'm gonna start working on getting actual logins going.
  22. Like
    Oddly got a reaction from Blinkuz in Today I did this on my project...   
    Lots of UI Development work today, designed some screens and also programmed responsive components in Salem2D. Removed JSON ui scripting and split things up into UI-Populator classes, and the code came out really clean. Bout to start working on textboxes and then I'm gonna start working on getting actual logins going.
  23. Like
    Oddly got a reaction from Blinkuz in Odd World - The AI Interaction Game   
    Project Information:
    This project has had a lot of thought put into the design in it, it's something that blends together a lot of what I study and have been thinking about for a while. I freed up time recently, trying to get a bit of arts and creativity back into me. I just started this project about a week ago, actually putting it into code, so it's still in its very early development stages.
     
    Project Name: Odd World
    Development Tools:
    Salem2D (My Personal Game Engine) Tiled Map Editor Language of Development: C++17
    Languages and Frameworks:
    Graphics: SFML Networking: Boost::Asio Other: Boost(system & data)  
    Completed Features:
    Engine Development Maps with collision and attributes (with teleporting and map linking) GameObject and Behavior System Map Loading Sprites and animations Pixel Based Movement Game Development Planned Features
    Its important to note that with no story or anything, im kinda writing the mechanics as I go, and am going to keep expanding out. Once I'm done with the core features, im going to add some fun things in.
    Engine Development Game Development Create Basic functioning ai with basic needs. Create Chat System Network Game Allow AIs to Chat, add socializing as a basic need to existing ai Distribute AI calculations over the network Plot:
    The backstory of Odd World goes like this; One night, a stoned software engineer who has a strong fascination for psychology and machine learning was attempting to formulate an equation for human-like intelligence.
    He came up with the idea that the functionality of living thing is survival. If you want to create something intelligent, you must reproduce the function of intelligence, such a thing must know how to survive. In order to test his theory, the software engineer knew that to make such an ai would be expensive in computational resources so he would need to simplify the algorithm, he would also need an environment to test his ai in. He came up with the idea of designing a 2D world in which many of these ai's could run this algorithm, learning to interact with each other and their world based of programmed needs. He brushed off his old 2D game development library after 2 long years, and began to get to work. This environment has no story or quests, it's all about creating a space for humans and AIs to interact.
     
    The Mechanics:
    This game circles around Psychology, so a lot of the mechanics are a bit psychological. I'm not gonna give the full model because its a lot to explain but the primary idea behind these AI's tries to replicate human nature in the sense that the opinions humans hold are based on their experiences and what their body felt emotionally and physically at the time of having said experience. The actions humans take are based on what they are currently feeling from their environment and their values which are products of basic needs and opinions.
     
    The AI: So the AI mechanics will start pretty basic and expand out as AI requires a lot of tweaking to get desired effects. The goal of the ais, is that they have basic needs like hunger, thirst, the are required to reproduce after a certain age, they will be given the ability to talk and will be required to socialize every so often, entertainment, etc. The AI fulfills these needs by interacting with objects in the world and with other AIs. The AI will idealy have no pre-programmed responses, it will run on a special type of GNN (generative neural network) I designed which will make them very random acting at first, but as they learn what fulfills their needs through the world interactions produced by their random actions, their actions will start to get more defined and they will grow better at staying alive. The AIs eventually will have the ability to build objects and structures. They'll have currency and be able to trade, and so much more. The goal is to give the AIs a fair amount of freedom by making them act purely statistically. I have 2 different types of AIs in this project, The Hive Mind and The Individual, They both survive with the same algorithm stated above the differences are as followed;
     
    The Hive Mind AI: The collectivist is an AI that operates on single universe Neural Network shared with every other AI in the same "Hive". Each AI on the Hive is somewhere else in the world experiencing something different. However, because they are all using the same Neural Network to calculate what action should be taken, they all share the same memories and opinions, meaning they will all calculate Action under the same ideals and values. The Hive Mind focuses on the average well-being of the collective, Hive remains alive as long as at least 1 hive child is still alive.
      The Individual AI: Each Individual has their own Neural Network and their own experiences. They will hold their own opinions, memories, and values of the world and therefor, each individual will formulate action under different premises. When the individual is dead, yes they are very dead.
    The Player:
    The way the player will interact with the world is depending on the Game Mode the server is configured for. There are currently 4 Game Modes the AI algorithm remains the same, however the Algorithm will act differently when the rules of the game are different. How it gets what it needs to survive will depend on the environment. For example, if there is limited necessary resources, the AI may go to war with other AI or players for that resource. The 4 planned game modes are as followed:
     
    Casual Survival Mode: All things respawn at a cost. Players have same privleges as AI. Players must survive like AI. Survival Mode: AIs die permanently, Players respawn but lost everything. The player loses everything it owns on death (all items, and all houses and assets under their possession). Players have same privleges as AI. Players must survive like AI. Creative Mode: Players are basically like gods to the ai, they can cause natural disasters,  take over hives, control ais, destroy property, spawn items and AI. etc. XANA Mode: Totally inspired by the old french anime, Code Lyoko. XANA mode is a player vs Hive Mind objective. The game is split into rounds, players and AI respawn at the start of each round. There is limited resources around the map. The players must kill the 1 single hive mind ai before it kills all the players. The amount of ai's connected to the hive mind depends on the number of players. The Hive mind will keep getting better, because it never resets the values of its neural network after each round. Every AI in the hive will be named "XANA".
    The Network Distribution:
    So, in order to give these ai's the ability to recognize objects that they see, I need to be able to render what they see and feed it into a neural network, and that's a very expensive operation. The server alone will host Data for the AI's. The server will also host Hive-Mind Neural Networks. But Rendering and Individualist AI's NN will be passed off to the Player's machine for formulation. Individualist AI's exist on the server, however, when they go to formulate actions, they request 1 random client on the network, to run the calculate for them and send the result back to the server for the action to be taken. Though this is easily hackable, its the only way I can make the kinda game I want. The server itself has to be a multi-agent system. The rendering of these AI's screens will also be passed off to the client.
     
    Screenshots:
    (Not many yet, been working on the physics and map engine mostly, will update as I go on). These graphics were purchased, but ill probably get some graphics custom made as time goes on.
     
    About the Engine:
    Salem2D is a game engine I work on a few years back, it has networking and game objects and what not. It's written in C++ and is making development quick and easy for me. It's open-source but its really not ready for other people, there's a lot of bugs I just fixed this past week, and am trying to make map loading more ambiguous to the game its in.
     
    Plans moving forward:
    So far, I've basically wrapped up the meat of the graphics engine, I got a bit of debugging on some networking features, but other than that, im at a point where I'm actually writing out game mechanics. My first prototype is to get a single AI running on a network who only has 1 basic need and that's to not die of hunger. I will add random fruits around a couple of my maps and watch as it learns to pick them up, even though it wasn't necessarily programmed to directly find food, only keep its hunger sufficed. I will be posting a lot of updates here as time goes on. This is a really cool project to me because it combines Psychology, AI, and Programming, so I'm excited to be working on this. Its fun and funny.
     
    Why Keep up?
    The game's not really far enough along in development that I can post "Why Play", but you should keep up because its cool, the goal is to use this project to help people learn a bit about psychology while having fun gaming. Its a survival game you can build in technically. No story, just hours of educational Interactive endless entertainment with AI.
     
    Wanna join the team?
    If you're interested in the project and want to help with mapping, graphic design, or programming, Add me on my discord: OddlyDoddly#2354
    Do note, I will not just accept anyone and everything into this project. I require some example of work for whatever you'd like to join in on. Compensation for helping with the project will include a negotiation up joining.
    (Think about what you want out of the project before reaching out to me please).
  24. Like
    Oddly got a reaction from Beast Boyz in Odd World - The AI Interaction Game   
    Project Information:
    This project has had a lot of thought put into the design in it, it's something that blends together a lot of what I study and have been thinking about for a while. I freed up time recently, trying to get a bit of arts and creativity back into me. I just started this project about a week ago, actually putting it into code, so it's still in its very early development stages.
     
    Project Name: Odd World
    Development Tools:
    Salem2D (My Personal Game Engine) Tiled Map Editor Language of Development: C++17
    Languages and Frameworks:
    Graphics: SFML Networking: Boost::Asio Other: Boost(system & data)  
    Completed Features:
    Engine Development Maps with collision and attributes (with teleporting and map linking) GameObject and Behavior System Map Loading Sprites and animations Pixel Based Movement Game Development Planned Features
    Its important to note that with no story or anything, im kinda writing the mechanics as I go, and am going to keep expanding out. Once I'm done with the core features, im going to add some fun things in.
    Engine Development Game Development Create Basic functioning ai with basic needs. Create Chat System Network Game Allow AIs to Chat, add socializing as a basic need to existing ai Distribute AI calculations over the network Plot:
    The backstory of Odd World goes like this; One night, a stoned software engineer who has a strong fascination for psychology and machine learning was attempting to formulate an equation for human-like intelligence.
    He came up with the idea that the functionality of living thing is survival. If you want to create something intelligent, you must reproduce the function of intelligence, such a thing must know how to survive. In order to test his theory, the software engineer knew that to make such an ai would be expensive in computational resources so he would need to simplify the algorithm, he would also need an environment to test his ai in. He came up with the idea of designing a 2D world in which many of these ai's could run this algorithm, learning to interact with each other and their world based of programmed needs. He brushed off his old 2D game development library after 2 long years, and began to get to work. This environment has no story or quests, it's all about creating a space for humans and AIs to interact.
     
    The Mechanics:
    This game circles around Psychology, so a lot of the mechanics are a bit psychological. I'm not gonna give the full model because its a lot to explain but the primary idea behind these AI's tries to replicate human nature in the sense that the opinions humans hold are based on their experiences and what their body felt emotionally and physically at the time of having said experience. The actions humans take are based on what they are currently feeling from their environment and their values which are products of basic needs and opinions.
     
    The AI: So the AI mechanics will start pretty basic and expand out as AI requires a lot of tweaking to get desired effects. The goal of the ais, is that they have basic needs like hunger, thirst, the are required to reproduce after a certain age, they will be given the ability to talk and will be required to socialize every so often, entertainment, etc. The AI fulfills these needs by interacting with objects in the world and with other AIs. The AI will idealy have no pre-programmed responses, it will run on a special type of GNN (generative neural network) I designed which will make them very random acting at first, but as they learn what fulfills their needs through the world interactions produced by their random actions, their actions will start to get more defined and they will grow better at staying alive. The AIs eventually will have the ability to build objects and structures. They'll have currency and be able to trade, and so much more. The goal is to give the AIs a fair amount of freedom by making them act purely statistically. I have 2 different types of AIs in this project, The Hive Mind and The Individual, They both survive with the same algorithm stated above the differences are as followed;
     
    The Hive Mind AI: The collectivist is an AI that operates on single universe Neural Network shared with every other AI in the same "Hive". Each AI on the Hive is somewhere else in the world experiencing something different. However, because they are all using the same Neural Network to calculate what action should be taken, they all share the same memories and opinions, meaning they will all calculate Action under the same ideals and values. The Hive Mind focuses on the average well-being of the collective, Hive remains alive as long as at least 1 hive child is still alive.
      The Individual AI: Each Individual has their own Neural Network and their own experiences. They will hold their own opinions, memories, and values of the world and therefor, each individual will formulate action under different premises. When the individual is dead, yes they are very dead.
    The Player:
    The way the player will interact with the world is depending on the Game Mode the server is configured for. There are currently 4 Game Modes the AI algorithm remains the same, however the Algorithm will act differently when the rules of the game are different. How it gets what it needs to survive will depend on the environment. For example, if there is limited necessary resources, the AI may go to war with other AI or players for that resource. The 4 planned game modes are as followed:
     
    Casual Survival Mode: All things respawn at a cost. Players have same privleges as AI. Players must survive like AI. Survival Mode: AIs die permanently, Players respawn but lost everything. The player loses everything it owns on death (all items, and all houses and assets under their possession). Players have same privleges as AI. Players must survive like AI. Creative Mode: Players are basically like gods to the ai, they can cause natural disasters,  take over hives, control ais, destroy property, spawn items and AI. etc. XANA Mode: Totally inspired by the old french anime, Code Lyoko. XANA mode is a player vs Hive Mind objective. The game is split into rounds, players and AI respawn at the start of each round. There is limited resources around the map. The players must kill the 1 single hive mind ai before it kills all the players. The amount of ai's connected to the hive mind depends on the number of players. The Hive mind will keep getting better, because it never resets the values of its neural network after each round. Every AI in the hive will be named "XANA".
    The Network Distribution:
    So, in order to give these ai's the ability to recognize objects that they see, I need to be able to render what they see and feed it into a neural network, and that's a very expensive operation. The server alone will host Data for the AI's. The server will also host Hive-Mind Neural Networks. But Rendering and Individualist AI's NN will be passed off to the Player's machine for formulation. Individualist AI's exist on the server, however, when they go to formulate actions, they request 1 random client on the network, to run the calculate for them and send the result back to the server for the action to be taken. Though this is easily hackable, its the only way I can make the kinda game I want. The server itself has to be a multi-agent system. The rendering of these AI's screens will also be passed off to the client.
     
    Screenshots:
    (Not many yet, been working on the physics and map engine mostly, will update as I go on). These graphics were purchased, but ill probably get some graphics custom made as time goes on.
     
    About the Engine:
    Salem2D is a game engine I work on a few years back, it has networking and game objects and what not. It's written in C++ and is making development quick and easy for me. It's open-source but its really not ready for other people, there's a lot of bugs I just fixed this past week, and am trying to make map loading more ambiguous to the game its in.
     
    Plans moving forward:
    So far, I've basically wrapped up the meat of the graphics engine, I got a bit of debugging on some networking features, but other than that, im at a point where I'm actually writing out game mechanics. My first prototype is to get a single AI running on a network who only has 1 basic need and that's to not die of hunger. I will add random fruits around a couple of my maps and watch as it learns to pick them up, even though it wasn't necessarily programmed to directly find food, only keep its hunger sufficed. I will be posting a lot of updates here as time goes on. This is a really cool project to me because it combines Psychology, AI, and Programming, so I'm excited to be working on this. Its fun and funny.
     
    Why Keep up?
    The game's not really far enough along in development that I can post "Why Play", but you should keep up because its cool, the goal is to use this project to help people learn a bit about psychology while having fun gaming. Its a survival game you can build in technically. No story, just hours of educational Interactive endless entertainment with AI.
     
    Wanna join the team?
    If you're interested in the project and want to help with mapping, graphic design, or programming, Add me on my discord: OddlyDoddly#2354
    Do note, I will not just accept anyone and everything into this project. I require some example of work for whatever you'd like to join in on. Compensation for helping with the project will include a negotiation up joining.
    (Think about what you want out of the project before reaching out to me please).
  25. Like
    Oddly got a reaction from Justn in Odd World - The AI Interaction Game   
    Project Information:
    This project has had a lot of thought put into the design in it, it's something that blends together a lot of what I study and have been thinking about for a while. I freed up time recently, trying to get a bit of arts and creativity back into me. I just started this project about a week ago, actually putting it into code, so it's still in its very early development stages.
     
    Project Name: Odd World
    Development Tools:
    Salem2D (My Personal Game Engine) Tiled Map Editor Language of Development: C++17
    Languages and Frameworks:
    Graphics: SFML Networking: Boost::Asio Other: Boost(system & data)  
    Completed Features:
    Engine Development Maps with collision and attributes (with teleporting and map linking) GameObject and Behavior System Map Loading Sprites and animations Pixel Based Movement Game Development Planned Features
    Its important to note that with no story or anything, im kinda writing the mechanics as I go, and am going to keep expanding out. Once I'm done with the core features, im going to add some fun things in.
    Engine Development Game Development Create Basic functioning ai with basic needs. Create Chat System Network Game Allow AIs to Chat, add socializing as a basic need to existing ai Distribute AI calculations over the network Plot:
    The backstory of Odd World goes like this; One night, a stoned software engineer who has a strong fascination for psychology and machine learning was attempting to formulate an equation for human-like intelligence.
    He came up with the idea that the functionality of living thing is survival. If you want to create something intelligent, you must reproduce the function of intelligence, such a thing must know how to survive. In order to test his theory, the software engineer knew that to make such an ai would be expensive in computational resources so he would need to simplify the algorithm, he would also need an environment to test his ai in. He came up with the idea of designing a 2D world in which many of these ai's could run this algorithm, learning to interact with each other and their world based of programmed needs. He brushed off his old 2D game development library after 2 long years, and began to get to work. This environment has no story or quests, it's all about creating a space for humans and AIs to interact.
     
    The Mechanics:
    This game circles around Psychology, so a lot of the mechanics are a bit psychological. I'm not gonna give the full model because its a lot to explain but the primary idea behind these AI's tries to replicate human nature in the sense that the opinions humans hold are based on their experiences and what their body felt emotionally and physically at the time of having said experience. The actions humans take are based on what they are currently feeling from their environment and their values which are products of basic needs and opinions.
     
    The AI: So the AI mechanics will start pretty basic and expand out as AI requires a lot of tweaking to get desired effects. The goal of the ais, is that they have basic needs like hunger, thirst, the are required to reproduce after a certain age, they will be given the ability to talk and will be required to socialize every so often, entertainment, etc. The AI fulfills these needs by interacting with objects in the world and with other AIs. The AI will idealy have no pre-programmed responses, it will run on a special type of GNN (generative neural network) I designed which will make them very random acting at first, but as they learn what fulfills their needs through the world interactions produced by their random actions, their actions will start to get more defined and they will grow better at staying alive. The AIs eventually will have the ability to build objects and structures. They'll have currency and be able to trade, and so much more. The goal is to give the AIs a fair amount of freedom by making them act purely statistically. I have 2 different types of AIs in this project, The Hive Mind and The Individual, They both survive with the same algorithm stated above the differences are as followed;
     
    The Hive Mind AI: The collectivist is an AI that operates on single universe Neural Network shared with every other AI in the same "Hive". Each AI on the Hive is somewhere else in the world experiencing something different. However, because they are all using the same Neural Network to calculate what action should be taken, they all share the same memories and opinions, meaning they will all calculate Action under the same ideals and values. The Hive Mind focuses on the average well-being of the collective, Hive remains alive as long as at least 1 hive child is still alive.
      The Individual AI: Each Individual has their own Neural Network and their own experiences. They will hold their own opinions, memories, and values of the world and therefor, each individual will formulate action under different premises. When the individual is dead, yes they are very dead.
    The Player:
    The way the player will interact with the world is depending on the Game Mode the server is configured for. There are currently 4 Game Modes the AI algorithm remains the same, however the Algorithm will act differently when the rules of the game are different. How it gets what it needs to survive will depend on the environment. For example, if there is limited necessary resources, the AI may go to war with other AI or players for that resource. The 4 planned game modes are as followed:
     
    Casual Survival Mode: All things respawn at a cost. Players have same privleges as AI. Players must survive like AI. Survival Mode: AIs die permanently, Players respawn but lost everything. The player loses everything it owns on death (all items, and all houses and assets under their possession). Players have same privleges as AI. Players must survive like AI. Creative Mode: Players are basically like gods to the ai, they can cause natural disasters,  take over hives, control ais, destroy property, spawn items and AI. etc. XANA Mode: Totally inspired by the old french anime, Code Lyoko. XANA mode is a player vs Hive Mind objective. The game is split into rounds, players and AI respawn at the start of each round. There is limited resources around the map. The players must kill the 1 single hive mind ai before it kills all the players. The amount of ai's connected to the hive mind depends on the number of players. The Hive mind will keep getting better, because it never resets the values of its neural network after each round. Every AI in the hive will be named "XANA".
    The Network Distribution:
    So, in order to give these ai's the ability to recognize objects that they see, I need to be able to render what they see and feed it into a neural network, and that's a very expensive operation. The server alone will host Data for the AI's. The server will also host Hive-Mind Neural Networks. But Rendering and Individualist AI's NN will be passed off to the Player's machine for formulation. Individualist AI's exist on the server, however, when they go to formulate actions, they request 1 random client on the network, to run the calculate for them and send the result back to the server for the action to be taken. Though this is easily hackable, its the only way I can make the kinda game I want. The server itself has to be a multi-agent system. The rendering of these AI's screens will also be passed off to the client.
     
    Screenshots:
    (Not many yet, been working on the physics and map engine mostly, will update as I go on). These graphics were purchased, but ill probably get some graphics custom made as time goes on.
     
    About the Engine:
    Salem2D is a game engine I work on a few years back, it has networking and game objects and what not. It's written in C++ and is making development quick and easy for me. It's open-source but its really not ready for other people, there's a lot of bugs I just fixed this past week, and am trying to make map loading more ambiguous to the game its in.
     
    Plans moving forward:
    So far, I've basically wrapped up the meat of the graphics engine, I got a bit of debugging on some networking features, but other than that, im at a point where I'm actually writing out game mechanics. My first prototype is to get a single AI running on a network who only has 1 basic need and that's to not die of hunger. I will add random fruits around a couple of my maps and watch as it learns to pick them up, even though it wasn't necessarily programmed to directly find food, only keep its hunger sufficed. I will be posting a lot of updates here as time goes on. This is a really cool project to me because it combines Psychology, AI, and Programming, so I'm excited to be working on this. Its fun and funny.
     
    Why Keep up?
    The game's not really far enough along in development that I can post "Why Play", but you should keep up because its cool, the goal is to use this project to help people learn a bit about psychology while having fun gaming. Its a survival game you can build in technically. No story, just hours of educational Interactive endless entertainment with AI.
     
    Wanna join the team?
    If you're interested in the project and want to help with mapping, graphic design, or programming, Add me on my discord: OddlyDoddly#2354
    Do note, I will not just accept anyone and everything into this project. I require some example of work for whatever you'd like to join in on. Compensation for helping with the project will include a negotiation up joining.
    (Think about what you want out of the project before reaching out to me please).
×
×
  • Create New...