Search the Community

Showing results for tags 'Javascript'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Categories

  • Audio
    • Music and Sound FX
  • Business
    • Business and Law
    • Career Development
    • Production and Management
  • Game Design
    • Game Design and Theory
    • Writing for Games
    • UX for Games
  • Industry
    • Interviews
    • Event Coverage
  • Programming
    • Artificial Intelligence
    • General and Gameplay Programming
    • Graphics and GPU Programming
    • Engines and Middleware
    • Math and Physics
    • Networking and Multiplayer
  • Visual Arts
  • Archive

Categories

  • News

Categories

  • Audio
  • Visual Arts
  • Programming
  • Writing

Categories

  • Audio Jobs
  • Business Jobs
  • Game Design Jobs
  • Programming Jobs
  • Visual Arts Jobs

Categories

  • GameDev Unboxed

Forums

  • Audio
    • Music and Sound FX
  • Business
    • Games Career Development
    • Production and Management
    • Games Business and Law
  • Game Design
    • Game Design and Theory
    • Writing for Games
  • Programming
    • Artificial Intelligence
    • Engines and Middleware
    • General and Gameplay Programming
    • Graphics and GPU Programming
    • Math and Physics
    • Networking and Multiplayer
  • Visual Arts
    • 2D and 3D Art
    • Critique and Feedback
  • Topical
    • Virtual and Augmented Reality
    • News
  • Community
    • GameDev Challenges
    • For Beginners
    • GDNet+ Member Forum
    • GDNet Lounge
    • GDNet Comments, Suggestions, and Ideas
    • Coding Horrors
    • Your Announcements
    • Hobby Project Classifieds
    • Indie Showcase
    • Article Writing
  • Affiliates
    • NeHe Productions
    • AngelCode
  • Workshops
    • C# Workshop
    • CPP Workshop
    • Freehand Drawing Workshop
    • Hands-On Interactive Game Development
    • SICP Workshop
    • XNA 4.0 Workshop
  • Archive
    • Topical
    • Affiliates
    • Contests
    • Technical

Calendars

  • Community Calendar
  • Games Industry Events
  • Game Jams

Blogs

There are no results to display.

There are no results to display.

Marker Groups

  • Members

Developers


Group


About Me


Website


Industry Role


Twitter


Github


Twitch


Steam

Found 26 results

  1. I am currently attempting to make a navigation mesh for our 2D top down game, which is a multiplayer game using Node.js as the server communication. At the moment, I have implemented A* over an obstacle hardnessmap, which is awfully slow and laggy at times when we test our game on Heroku. I have been trying to find an algorithm to automatically generate the navmesh after map creation, instead of me having to do this manually. I am currently attempting to use Delaunay's Triangulation Divide and Conquer algorithm, but I am running into some issues. I have already asked a question on StackOverflow and am not getting many suggestions and help from it, so I figured I would come here. Is there another algorithm that might be better to use for the navmesh generation in comparison to Deluanay's Triangulation? My current implementation seems extremely buggy during the merge step and I cannot find the error. I have checked over the code countless times, comparing it to the description of the algorithm from http://www.geom.uiuc.edu/~samuelp/del_project.html. My current code is this: class MapNode { constructor(x, y) { this.position = new Vector(x, y); this.neighbors = []; } distance(n) { return this.position.distance(n.position); } inNeighbor(n) { for (let i = 0; i < this.neighbors.length; i++) { if (this.neighbors[i] === n) return true; } return false; } addNeighbor(n) { this.neighbors = this.neighbors.filter((node) => node != n); this.neighbors.push(n); } addNeighbors(arr) { let self = this; arr.forEach((n) => self.neighbors.push(n)); } removeNeighbor(n) { this.neighbors = this.neighbors.filter((neighbor) => neighbor != n); } } class Triangle { constructor(p1, p2, p3) { this.p1 = p1; this.p2 = p2; this.p3 = p3; this.neighbors = []; } addNeighbors(n) { this.neighbors.push(n); } } function genSubMat(matrix, ignoreCol) { let r = []; for (let i = 0; i < matrix.length - 1; i++) { r.push([]); for (let j = 0; j < matrix[0].length; j++) { if (j != ignoreCol) r[i].push(matrix[i + 1][j]); } } return r; } function determinantSqMat(matrix) { if (matrix.length != matrix[0].length) return false; if (matrix.length === 2) return matrix[0][0] * matrix[1][1] - matrix[1][0] * matrix[0][1]; let det = 0; for (let i = 0; i < matrix.length; i++) { let r = genSubMat(matrix, i); let tmp = matrix[0][i] * determinantSqMat(r); if (i % 2 == 0) det += tmp; else det -= tmp; } return -det; } // if d is in the circle formed by points a, b, and c, return > 0 // d is on circle, return 0 // d is outside of circle, return < 0 function inCircle(a, b, c, d) { let arr = [a, b, c, d]; let mat = [ [], [], [], [] ]; for (let i = 0; i < arr.length; i++) { mat[i][0] = 1; mat[i][1] = arr[i].position.x; mat[i][2] = arr[i].position.y; mat[i][3] = arr[i].position.x * arr[i].position.x + arr[i].position.y * arr[i].position.y; } return determinantSqMat(mat); } function walkable(from, to, hardnessMap) { let diff = new Vector(to.x - from.x, to.y - from.y); if (Math.abs(diff.x) > Math.abs(diff.y)) diff.scale(Math.abs(1 / diff.x)); else diff.scale(Math.abs(1 / diff.y)); let current = new Vector(from.x + diff.x, from.y + diff.y); while (Math.round(current.x) != to.x || Math.round(current.y) != to.y) { if (hardnessMap[Math.floor(current.y)][Math.floor(current.x)] === 1) return false; current.x += diff.x; current.y += diff.y; } return true; } function getLowest(nodes) { let lowest = nodes[0]; for (let i = 1; i < nodes.length; i++) { if (nodes[i].position.y < lowest.position.y) lowest = nodes[i]; } return lowest; } // returns the angle between 2 vectors, if cw is true, then return clockwise angle between, // else return the ccw angle between. b is the "hinge" point function angleBetween(a, b, c, cw) { let ba = new Vector(a.position.x - b.position.x, a.position.y - b.position.y); let bc = new Vector(c.position.x - b.position.x, c.position.y - b.position.y); let v0 = new Vector(0, 1); let angleBA = v0.angleBetween(ba) * 180 / Math.PI; if (angleBA < 0) angleBA += 360; let angleBC = v0.angleBetween(bc) * 180 / Math.PI; if (angleBC < 0) angleBC += 360; let smallest = Math.min(angleBA, angleBC); let largest = Math.max(angleBA, angleBC); let angle = largest - smallest; return (cw) ? angle : 360 - angle; } function sortSmallestAngle(a, b, list, cw) { list.sort((m, n) => { let vab = new Vector(a.position.x - b.position.x, a.position.y - b.position.y); let vmb = new Vector(m.position.x - b.position.x, m.position.y - b.position.y); let vnb = new Vector(n.position.x - b.position.x, n.position.y - b.position.y); if (cw) return vab.angleBetween(vmb, cw) - vab.angleBetween(vnb, cw); else return vab.angleBetween(vnb, cw) - vab.angleBetween(vmb, cw); }); } // a is in list, b is in the other list function getPotential(a, b, list, cw) { sortSmallestAngle(b, a, list, cw); for (let i = 0; i < list.length - 1; i++) { let angle = angleBetween(b, a, list[i], cw); if (angle > 180) return false; else if (inCircle(a, b, list[i], list[i + 1]) <= 0) return list[i]; else { a.removeNeighbor(list[i]); list[i].removeNeighbor(a); } } let potential = list[list.length - 1]; if (potential) { let angle = angleBetween(a, b, potential, cw); if (angle > 180) return false; return potential; } return false; } function merge(leftNodes, rightNodes, leftBase, rightBase, hardnessMap) { leftBase.addNeighbor(rightBase); rightBase.addNeighbor(leftBase); let newLeft = leftNodes.filter((n) => n != leftBase); let newRight = rightNodes.filter((n) => n != rightBase); let potentialLeft = getPotential(leftBase, rightBase, newLeft, false); let potentialRight = getPotential(rightBase, leftBase, newRight, true); if (!potentialLeft && !potentialRight) return; else if (potentialLeft && !potentialRight) merge(newLeft, newRight, potentialLeft, rightBase, hardnessMap); else if (potentialRight && !potentialLeft) merge(newLeft, newRight, leftBase, potentialRight, hardnessMap); else { if (inCircle(leftBase, rightBase, potentialLeft, potentialRight) <= 0) merge(newLeft, newRight, potentialLeft, rightBase, hardnessMap); if (inCircle(leftBase, rightBase, potentialRight, potentialLeft) <= 0) merge(newLeft, newRight, leftBase, potentialRight, hardnessMap); } } // divide and conquer algorithm function delaunay(nodes, hardnessMap) { if (nodes.length <= 3) { for (let i = 0; i < nodes.length; i++) for (let j = 0; j < nodes.length; j++) if (i != j) nodes[i].addNeighbor(nodes[j]); return nodes; } else { nodes.sort((a, b) => { let tmp = a.position.x - b.position.x; if (tmp === 0) return b.position.y - a.position.y; return tmp; }); let l = nodes.length; let leftNodes; let rightNodes; if (l === 4) { leftNodes = delaunay(nodes.slice(0, 3), hardnessMap); rightNodes = delaunay(nodes.slice(3, 4), hardnessMap); } else { leftNodes = delaunay(nodes.slice(0, Math.floor(nodes.length / 2)), hardnessMap); rightNodes = delaunay(nodes.slice(Math.floor(nodes.length / 2), nodes.length), hardnessMap); } let leftBase = getLowest(leftNodes); let rightBase = getLowest(rightNodes); merge(leftNodes, rightNodes, leftBase, rightBase, hardnessMap); console.log("=============================MergeComplete================================"); return nodes; } }
  2. The best way to learn is to practice as much as possible. Share your examples here. What browsers WebGL is supported, you can see here: WebGL 1.0: https://caniuse.com/#feat=webgl WebGL 2.0: https://caniuse.com/#feat=webgl2 A brief description of what WebGL is, and references to the specifications: https://www.khronos.org/webgl/ Tutorials: WebGL 1.0 Fundamentals WebGL 2.0 Fundamentals This book is about WebGL 1.0: WebGL Programming Guide Source Code for the book: examples.zip Source Code for the book on JSFiddle: Chapter 02. Your First Step with WebGL ch02/HelloCanvas: https://jsfiddle.net/8Observer8/2gky294r/ ch02/HelloPoint1: https://jsfiddle.net/8Observer8/cc72u1u5/ ch02/HelloPoint2: https://jsfiddle.net/8Observer8/uxw657ud/ ch02/ClickedPoints: https://jsfiddle.net/8Observer8/xf4fnc0o/ ch02/ColoredPoints: https://jsfiddle.net/8Observer8/gkkmnpga/ Chapter 03. Drawing and Transforming Triangles ch03/MultiPoint: https://jsfiddle.net/8Observer8/cty1120m/ ch03/HelloTriangle: https://jsfiddle.net/8Observer8/wk4sksnw/ ch03/HelloQuad: https://jsfiddle.net/8Observer8/g4ctyk7w/ ch03/HelloQuad_FAN: https://jsfiddle.net/8Observer8/v119e8o6/ ch03/HelloTriangle_LINES: https://jsfiddle.net/8Observer8/wwrkaxcf/ ch03/HelloTriangle_LINE_STRIP: https://jsfiddle.net/8Observer8/3ggjz4rm/ ch03/HelloTriangle_LINE_LOOP: https://jsfiddle.net/8Observer8/7vcyquro/ ch03/TranslatedTriangle: https://jsfiddle.net/8Observer8/0dp4xvyt/ ch03/RotatedTriangle: https://jsfiddle.net/8Observer8/gh9s6szm/ ch03/RotatedTriangle_Matrix: https://jsfiddle.net/8Observer8/7ze7pgpu/ ch03/ScaledTriangle_Matrix: https://jsfiddle.net/8Observer8/6xzoe63s/ Chapter 04. More Transformations and Basic Animation ch04/RotatedTriangle_Matrix4: https://jsfiddle.net/8Observer8/t4y7783v/ ch04/RotatedTranslatedTriangle: https://jsfiddle.net/8Observer8/b5yfxojp/ ch04/TranslatedRotatedTriangle: https://jsfiddle.net/8Observer8/o8voebc9/ ch04/RotatingTriangle: https://jsfiddle.net/8Observer8/x9j5vdk7/ ch04/RotatingTranslatedTriangle: https://jsfiddle.net/8Observer8/rkrv0322/ ch04/RotatingTriangle_withButtons: https://jsfiddle.net/8Observer8/wzoLmdzd/ Chapter 05. Using Colors and Texture Images ch05/MultiAttributeSize: https://jsfiddle.net/8Observer8/dsfgezbj/ ch05/MultiAttributeSize_Interleaved: https://jsfiddle.net/8Observer8/bshwnden/ ch05/MultiAttributeColor: https://jsfiddle.net/8Observer8/bveykLdf/ ch05/ColoredTriangle: https://jsfiddle.net/8Observer8/mrkpms7d/ ch05/HelloTriangle_FragCoord: https://jsfiddle.net/8Observer8/ft33yo9s/ ch05/TexturedQuad: https://jsfiddle.net/8Observer8/o3vakb3h/ ch05/TexturedQuad_Repeat: https://jsfiddle.net/8Observer8/2s7q68cc/ ch05/TexturedQuad_Clamp_Mirror: https://jsfiddle.net/8Observer8/mqu0wwma/ ch05/MultiTexture: https://jsfiddle.net/8Observer8/ztew5u0p/ Chapter 07. Toward the 3D World ch07/LookAtTriangles: https://jsfiddle.net/8Observer8/6ab11xpg/ ch07/LookAtRotatedTriangles: https://jsfiddle.net/8Observer8/944dd57h/ ch07/LookAtRotatedTriangles_modelViewMatrix: https://jsfiddle.net/8Observer8/e5t6gj1w/ ch07/LookAtTrianglesWithKeys: https://jsfiddle.net/8Observer8/38ewegg2/ ch07/OrthoView: https://jsfiddle.net/8Observer8/zebt4u7t/ ch07/LookAtTrianglesWithKey_ViewVolume: https://jsfiddle.net/8Observer8/vLcejtm1/ ch07/OrthoView_halfSize: https://jsfiddle.net/8Observer8/uvcd9h4p/ ch07/OrthoView_halfWidth: https://jsfiddle.net/8Observer8/vepodfb8/ ch07/PerspectiveView: https://jsfiddle.net/8Observer8/640pv8qe/ ch07/PerspectiveView_mvp: https://jsfiddle.net/8Observer8/w8yh4Lmj/ ch07/PerspectiveView_mvpMatrix: https://jsfiddle.net/8Observer8/hhwnx145/ ch07/DepthBuffer: https://jsfiddle.net/8Observer8/hyumw026/ ch07/Zfighting: https://jsfiddle.net/8Observer8/foc0b45t/ ch07/HelloCube: https://jsfiddle.net/8Observer8/rkpn5tyw/ ch07/ColoredCube: https://jsfiddle.net/8Observer8/80x8cyom/ ch07/ColoredCube_singleColor: https://jsfiddle.net/8Observer8/pespackq/ Chapter 08. Lighting Objects ch08/LightedCube: https://jsfiddle.net/8Observer8/4jchxo84/ ch08/LightedCube_animation: https://jsfiddle.net/8Observer8/ekw3osj7/ ch08/LightedCube_ambient: https://jsfiddle.net/8Observer8/y6qwnfe1/ ch08/LightedTranslatedRotatedCube: https://jsfiddle.net/8Observer8/pa88ujjg/ ch08/PointLightedCube: https://jsfiddle.net/8Observer8/vuq118ue/ ch08/PointLightedCube_animation: https://jsfiddle.net/8Observer8/5bj39hb8/ ch08/PointLightedSphere: https://jsfiddle.net/8Observer8/edz9Lz8f/ ch08/PointLightedSphere_perFragment: https://jsfiddle.net/8Observer8/qzwyow4j/ ch08/PointLightedCube_perFragment: https://jsfiddle.net/8Observer8/8t1umamf/ ch08/LightedCube_perFragment: https://jsfiddle.net/8Observer8/471y2t84/ Chapter 09. Hierarchical Objects ch09/JointModel: https://jsfiddle.net/8Observer8/vqse5egz/ ch09/MultiJointModel: https://jsfiddle.net/8Observer8/sL53wkn3/ ch09/MultiJointModel_segment: https://jsfiddle.net/8Observer8/ygvk7odv/ Chapter 10. Advanced Techniques ch10/RotateObject: https://jsfiddle.net/8Observer8/1f5hLmff/ ch10/PickObject: https://jsfiddle.net/8Observer8/owue624n/ ch10/PickFace: https://jsfiddle.net/8Observer8/edvw6z90/ ch10/HUD: https://jsfiddle.net/8Observer8/fLxxxs35/ ch10/3DoverWeb: https://jsfiddle.net/8Observer8/tbowcc16/ ch10/Fog: https://jsfiddle.net/8Observer8/6yf9L399/ ch10/Fog_w: https://jsfiddle.net/8Observer8/8aLvthc3/ ch10/RoundedPoints: https://jsfiddle.net/8Observer8/sjs5kmn4/ ch10/LookAtBlendedTriangles: https://jsfiddle.net/8Observer8/apoz294n/ ch10/BlendedCube: https://jsfiddle.net/8Observer8/xsrL2fs5/ ch10/ProgramObject: https://jsfiddle.net/8Observer8/jnd0j6w0/ ch10/FramebufferObject: https://jsfiddle.net/8Observer8/vaLq6d66/ ch10/Shadow: https://jsfiddle.net/8Observer8/jsnfwcae/ ch10/Shadow_highp: https://jsfiddle.net/8Observer8/brjzr00n/ ch10/Shadow_highp_sphere: https://jsfiddle.net/8Observer8/4fmyLy5f/ ch10/OBJViewer: https://jsfiddle.net/8Observer8/pws1x7uv/ ch10/RotatingTriangle_contextLost: https://jsfiddle.net/8Observer8/vs01s8Lz/ Gifts gifts/Particle: https://jsfiddle.net/8Observer8/Ltzt31vk/ gifts/Printf: https://jsfiddle.net/8Observer8/qsw7jtec/ gifts/SpecularCube: https://jsfiddle.net/8Observer8/z4xj9rbv/ gifts/TextTexture: https://jsfiddle.net/8Observer8/qt7q2kuf/ gifts/ThreeDUI: https://jsfiddle.net/8Observer8/zdw1f2st/ gifts/Wave: https://jsfiddle.net/8Observer8/eL9odthz/ gifts/WorldCoordinateSystem: https://jsfiddle.net/8Observer8/6utj3hnk/ appendix/CoordinateSystem: https://jsfiddle.net/8Observer8/dzz056jt/ Appendix appendix/CoordinateSystem_viewVolume: https://jsfiddle.net/8Observer8/apxLww1q/ appendix/LoadShaderFromFiles: https://jsfiddle.net/8Observer8/wdn9ubhj/
  3. Hacking Francois DIY

    From the album Francois DIY 2017

    Francois DIY is written in 100% JavaScript and runs quite smoothly on the PC environment. Currently there are no plans to rewrite the code in other languages as there would be little improvement. It is open source and free to hack. I suggest using an editor with a code navigator or function lister for ease of access. There is also a built-in JavaScript debugger as well. Why JavaScript? The main purpose is to allow the app to demo on the browser as well as run on the PC. There are no plans to port to small devices. Possible future port with be on a tablet if they are powerful enough in the future. Not sure if recoding will be done in JavaScript.
  4. How do i enable players coming to a game from being timedout while waiting for other gamers to join? Must be from the app side not the gamer side.
  5. I need who could get a website game to get more users. I was the developer, and I have finally finished the project, I cannot get it to go anywhere, so I'm just looking for a business partner or anyone who can help me get it anywhere, we can discuss anything over Skype just add me @ randomeguy123 or email zack.mitkin@gmail.com thank you very much for reading, and I hope to see your replies!
  6. I am a beginner programmer who want to make simple 2D puzzle games for Windows platform using Javascript. So I was wondering what are some good tools to achieve this. So far I have tried the Universal Windows Platform app thing. But a limitation of this method seem to be that it only supports Windows 10 as target platform. I wish to support Windows 8 as well.
  7. As a student currently enrolled in Computer Programming, I have found it difficult to obtain an internship with my limited knowledge and underwhelming professional experience. Most companies I applied to required 3-5 years experience, which seemed impossible to achieve if I was not given the initial opportunity to be hired. However, I was determined not to let that stop me and thus created my own independent gaming studio - World's End Entertainment. Our current work force has grown and now consists of four artists, and three programmers. All friendly and hard working individuals. Our first game Shield Smash, is an RPG Idle Adventurer which is written using html, css, javascript and the game engine Construct 2. The art is created with Photoshop and Kritika. The game is still underdevelopment but is steadily progressing. We are currently looking to expand our team with more programmers and artists, especially those well versed with pixel art. Upon completion of the game, Shield Smash will be launched on Kongregate, where you will each receive full credit as a part of World's End Entertainment. If the game makes money, the money will be divided evenly among the team. Please feel free to showcase the game as part of your portfolio. To Apply If you would like to join our team at World's End Entertainment, please feel free to send me your resume at gerarddummett1@yahoo.ca where I guarantee you that I will personally get back to you in a timely manner. The subject line should state: Resume for World's End Entertainment. Our team currently consists of seven members from around the world and we are more than happy to have that number continue to grow. Discussions and meetings will be held via Skype and through Emails. Thank you for taking your time to consider working with us, and we look forward to hearing from you.
  8. Me and my unity developer friend starting new project of poker game in unity(win,mac,android,ios only, web is not priority). We did some home work for how we can make game engine(game server) for this project and we finally come up with 2 names mostly. NODE.JS and SOCKET.IO + UNITY(frontend client). I already started learning node.js from basic and did some learning progress in that too. but I am still new for node. So I am really confuse about how we can connect our game server with our client/s. Can I make API or WebServices or is there any other method for node to contact unity clients? I need someone who can guide me for this project with step by step or give me direction in details to make this project complete. Please Direct me.
  9. Axis 3D for Web

    Axis is a free open source 3D engine for web pages and desktop applications. It's been a month since its official release with full source code, editor and all and there is more content available now like samples, info pages, API documentation and recently the team opened the discussion pages on the site where anyone can get help. From the team: Check out the latestaddition, a small 80-lines-of-code prototype of a space flyer game, playable on the web at http://palitri.com/axis/showcase/#Space You can learn more at http://palitri.com.
  10. Axis 3D for Web

    Axis is a free open source 3D engine for web pages and desktop applications. It's been a month since its official release with full source code, editor and all and there is more content available now like samples, info pages, API documentation and recently the team opened the discussion pages on the site where anyone can get help. From the team: Check out the latestaddition, a small 80-lines-of-code prototype of a space flyer game, playable on the web at http://palitri.com/axis/showcase/#Space You can learn more at http://palitri.com. View full story
  11. Html Space flyer

    A simple prototype for a 3d space/flight game done with Axis in 80 lines of code. Playable here http://palitri.com/axis/showcase/#Space
  12. Sad Robo Direct link to my game hosted on github : https://anicetngrt.github.io/SadRoboGame/ Direct link to the itch.io page for extra infos (and also to help game's visibility) : https://an-devhouse.itch.io/sad-robots- Requirements This is a web browser game, the main issue and requirement at the same time is that you'll need firefox to play it I do not benchmark pc with phaser.js 2d games so I guess if you have 2go of ram and a 1.5hGhz cpu it is fine. Feedback I'm new in this indie game dev world so any kind of feedback is appreciated. Just try to avoid bug report because my game isn't that complex so I know my bugs already. About my game My game is a 2d arena shooter multiplayer and singleplayer experience. 2 players or 1 player versus AI fight in an empty level by shooting each others. And then you are like "what ? empty level ? That's boring !". Well, not exactly. There is a lot of original 2d shooter mechanics which turn "sad robo" into an original and demanding game despite it minimalist level design. Aiming system : This is the core of the game. Each player, has an aiming cursor, which he can move freely as far as he do not cross red fences which's location changes constantly. Despite the "empty level" he'll have to jump, run, dash to find the right aiming pose and to win. Artistic choices : I made everything in this game except music* because I am so bad at this . The idea was to show how much pointless fights are. For that, I decided to choose maximum contrasty between game visuals and game context. Here are some exemples : - colourfull game / combat theme - happy and kawaï robots/ robots fighting to death - family friendly world/ hard rock ost *game music by Stone McKnuckle : https://stonemcknuckle.bandcamp.com/track/lightning-mandrill-remaster Others things to talk about : The game still have update ! It has been released 3 days ago and I updated it 5 times already ! This will not always be like this because of studies but it will still be updated ! Also there is a work in progress roadmap on the Itch.io page so don't forget to check it out ! If you like my game, and you want to give support, please share it to your friends. And let the sad robots spread into the entire wolrd niark niark. #1 Anicet, 57 minutes ago
  13. Strawberry Alert: Day 3

    Play it! | View on GitHub I couldn't do much today, but at least I added collisions and jumping. You won't see much difference, but now there's gravity pulling the character down and she's colliding against the floor instead of having a fixed y position. After jumping or attacking, the character doesn't resume movement if the right arrow is pressed, I will try to fix that tomorrow (Fixed, I should totally go to sleep now). Also, either tomorrow or Friday I should be able to start adding enemies and stuff. My initial idea was to let the player move freely through the map and have as a level goal clear it of alien enemies. I'm thinking now that an easier option might be make it endless runner style and have a certain amount of time to kill as many enemies as possible. I wish I had time to try out both and see which one is more fun, but I doubt it will be possible.
  14. I have implemented client interpolation and it works well. But I don't like my current structure. It looks really ugly and created too many temporary objects, besides that it is really hard to maintain the code. I am not going to show too many logic here as it is very tightly coupled with other parts of my game. Note that my code is written in javascript but if you show me some direction in generic language or C++ that's OK too because I think the logic should not be too different. In my game I have hundreds of players and other NPCs, and every network update I get a timestamp. I just bundle them up in a very big state object. Let's call it "currentRenderState", similarly I have "previousRenderState" and "futureRenderState", which means the state I receive in last update and the state I receive in current update. I am going to interpolate from "previousRenderState" to "futureRenderState". The interpolation result will be stored in "currentRenderState". If next update state hasn't arrived and the player state hasn't reached "futureRenderState" I will interpolate from "currentRenderState" to "futureRenderState". So my state object contains a lot of information. state = { timestamp, allPlayerStates, allNPCStates } Here "allPlayerStates" is a very big object too. It contains all the states of all players and each player contains dozens or even hundreds of properties. Every time I interpolate I need to clear the object in currentRenderState, also I need to reference allPlayerStates and allNPCStates in "previousRenderState" and "futureRenderState" to get one of the individual state and interpolate it. At the end of the interpolation I create a very big temporary state object and put the interpolation value into this state object and assign to "currentRenderState". Then in the interpolation code I loop through the "allPlayerStates" of "currentRenderState", and assign the value to each player on client side. Also I loop through "allNPCStates" to assign the value to each NPC on client side. This logic works, but I feel tiresome each time I read through my code. Is there a better way to organise my interpolation code, and probably make it more efficient too?
  15. Strawberry Alert: Day 1

    Strawberry Alert: Day 1 Today I have started working on the Week of Awesome V challenge. The working title for the project is Strawberry Alert. I generated it randomly and it is very unlikely to change due to time constraints. The Project The themes I want to try are Alien invasion and Castles. My intention is to create a side scroller where the hero must defend her castle from an alien invasion. With this project I want to explore whether functional reactive programming can be successfully used in games. I intend to capture the user input and time effects into streams, apply map-reduce to these streams to generate the game state, and finally render that game state to the screen. I will be happy if I can deliver something playable by the end of the week. Unfortunately, this week I'm back to work after vacation and I've got a few social commitments that I must honour, so I expect to be able to dedicate only about twelve hours more to the project. So far, I have managed to put together a parallax background and the walking animation for the hero sprite. The Art I am using a hero sprite and castle tiles created by Jetrel. I still need to find sprites for the alien enemies. The Tools I will target the browser and create my game using JavaScript. My weapons of choice are: pixi.js: a rendering library for WebGL and Canvas. cyclejs: a functional reactive framework. xstream: a stream library designed to work well with cyclejs. The Links The code is available on GitHub and, since it is a browser game, I will deploy my daily progress so that you guys can try it out. GitHub Game
  16. tic-tac-toe review request

    I was looking for an opportunity to learn/improve skills so I wrote this simple Tic-Tac-Toe game. I have written Python code for simple network tests and know enough JavaScript to get by. Still not certain on fine details though, particularly what subtle (or not) best practices I am likely missing. Code review, testing and advice on how to improve would be appreciated. Code is running on PythonAnywhere here: http://coffeeaddict.pythonanywhere.com/tictactoe Code is here on GIT: https://github.com/coffeeaddict19/tictactoe The three pieces are: JavaScript and Markup: tictactoe_page.html Bottle Framework Implementation: tictactoe_bottle.py Python Game Logic: tictactoe_logic.py If you look closely at the game logic the AI is...primitive. Researching MinMax to improve it is the next thing on list but in my experience if I wait for perfection I never get anything done. Anyway...how can I improve this game and this code? Thanks, John
  17. Pocket Universe | Pre-Order

    Hi everyone, My name is Arda Süer, i’m a game developer and producer of Pocket Universe : Create Your Community. Pocket Universe is on pre-order and soon the early access to Steam. I need your help and I want to introduce you to my game. Please read the game story and website content etc. If you have any suggestions tell us and we can develop. Example:"Story is good but you need more faction","You need add bla,bla to the game". Anyway I will put links here to help you to understand Pocket Universe. Story : http://www.pocketuniversegame.com/?page_id=7 Features : http://www.pocketuniversegame.com/?page_id=180 Factions : http://www.pocketuniversegame.com/?page_id=54 Press Release : http://www.pocketuniversegame.com/?page_id=237 If you want to help more, please buy my game Kinguin : https://www.kinguin.net/category/38680/pocket-universe-create-your-community-pre-order-steam-cd-key/ G2A : https://www.g2a.com/pocket-universe-create-your-community-steam-key-global-i10000070716001 Press Relase.rtf
  18. I dont really know exactly how to explain my issue so i will do my best. I'm looking to make an html game with javascript. I want to know how to setup an environment that has a big "world" but what you can see is only a small part of it as you move around. If you have ever played agar.io thats what i mean. Feel free to ask questions.
  19. Hello everyone! Like it often happens, I am software developer (not gamedev), and once I got an idea And I try to implement it. Idea was to create game, where main character is a developer. And after some occasion, he turns in mysterious world, where developers horrors/memes becomes true. For example, primary weapon is a crutch, player collects them. Player can use it for melee attack, or throw them for distant attack. Also player collects coffee to increase health. Basic enemies are bugs (literally), spaghetti monster, deadline, etc. Actually there are lot of ideas which can be implemented (such as skills, debuffs, selecting speciality for dev-player, which influences set of skills and so on), question only in finding free time for it) I plan multiple locations, starts with office, then city, then some nature place. I decided to use platformer genre, pixel art style (I considered it as easiest to implement. Problem that I don't have any experience in gamedev or creating art, drawing, etc) Here is brief video for 0-level. I reimplemented basic idea several times... I will very appreciate any opinion about this idea. Does it have any chance? Especially with so horrible design. Or may be you have some crazy ideas of game items? Thanks.
  20. Hello, what I need to achieve is very simple HTML5(and Jquery) draggable tiled game map with players on it(for my mmorts), like the ones below. I'm not asking for someone to make it for me, just need some directions where to start and what to use(since my game has database should I use it for the map too?). Also I need to click on players's castles, but I think in canvas this is not possible. I want the map to be big, about 25000x25000px, but rendering that big image all at once would not be the way, obviously. EDIT: Can someone move this topic to beginners section, i think posted it in wrong place.
  21. Hi guys, Firebase is great for recording events, but do someone know how you can display it for specific user in chronological order to see step by step his interaction with a game? Can this be done with BigQuery maybe? Thanks!
  22. Hello. I want to make a real-time browser game(mmorts), similar to Forge of Empires and Elvenar. I'm pretty familiar with PHP, Js(jQuery), AJAX/Rest API's, MySQL and HTML/CSS. I've red some similar topics here and here ,but I want to code it from scratch, without framework. Since my goal is to have many players worldwide, I have couple of questions: 1) In terms of Security(securing the game code/game data and users authentication), which languages/methods are best to pick, I've red some opinions that I should stay away from php and flash(nowdays flash is pretty common, everyone have the plugin)? 2) For the backend what are the pros and cons of NodeJs vs PHP handling multiple requests like a global chat? 3) How are these games actually made(Forge of Empires, Elvenar, League of Angels)? 4) In terms of graphics performance(low CPU/GPU cost) which methods are the lightest to use? I see that Flash is a quite heavy for low/mid-end pc's.
  23. Hi I have finished my multiplayer game interpolation code. It works fine. But I am looking for ways to optimize it and what could be done to improve performance. As for now I have too many temporary variables and objects inside the interpolation function which is running at 60 times per second on client side. I've read some articles that creating those temp variables and objects too many times may slow my game. To make things simple, I create a object literal like this in the class that defines the interpolation function { timestamp:0, allStates: {}, allOtherStuff: {} } In each interpolation I will clear the object, which means I am just creating a new empty object. Then in the interpolation function I use a for loop to push the interpolated value and other unchanged properties from previous state into object.allStates and object.allOtherStuff. Although this works perfectly but the interpolation function looks bloated. Is there anything I can do to improve this?
  24. London based front end full stack developer wanted for c6 weeks to help development. We work out of old street (Silicon roundabout). We are now a team of 4 (2 are hardcore back end guys). We really need a front-end designer who can work the stack. You will be the front end lead that will be building elegant and scalable data-driven web apps to integrate with our back-end stack. You should be able to demonstrate your expertise using appropriate modern technologies. Skills · Highly proficient with front-end stacks such as and HTML5, CSS, Javascript. · Demonstrated expertise with multiple JS frameworks such as React, Angular, jQuery. · Demonstrated expertise with data visualization frameworks such as D3.js · Understanding of designing and integrating web services (REST). · Demonstrated expertise with effective, responsive UX design. · Understand of potential website security issues. · Write scalable, readable, maintainable code Abilities · Solid experience as a front-end developer · Able to work across multiple projects and balance priorities · Capable of effectively acting on feedback, quickly and efficiently · Willing to learn and utilize new technologies appropriate for particular tasks Emails to manyo23@hotmail.com
  25. Trying to learn three.js. I'm having a bit of problem with the documentation and tutorials. the tutorials I'm finding seem to be for previous versions. I think my problem may stem for a fundamental lack of understanding of 3d animation. what is a weight, skinning, and animation mixer? examples using 3js would be best. at this point I can create the basic framework and import models.