A Tutorial on Hitsparks (part2)! |
- A Tutorial on Hitsparks (part2)!
- VIDEO: Making of Titanfall 2’s Time Travel Level ‘Effect and Cause’, Revealed by Respawn Entertainment Senior Designer
- Studio survival 10 commandments
- Inspired by "The Art of Screenshake" and "Juice it or lose it", I played around with adding juice to a top-down vehicle game. Most of the steps are simple to implement, and make a huge difference when stacked together.
- Work ethic and motivation - how much do you work on your project?
- Here's my latest Royalty-Free Music. It's an Upbeat Rock Retro Gaming track, and it's free to download ! Feel free to use it in your games !
- Anyone familiar with Cinemachine?
- C++ memory allocator for games
- Animations and cutscenes for 2.5D game
- Asking for proofreading of my article/research on infinite game worlds and spatial data structures
- game design best practices
- Is this zombie too gory for the 10+ console/mobile crowd? No drippy blood or anything.
- Changing the Open-World
- SVN for Art and GIT for Programmers?
- Complete Guide to OpenAL with C++ Part 1
- I'm new to this process. How do you keep track of details to keep game objects consistent across all levels?
- Giving away 3 copies of my first game, Retro! (X-Post from r/pcmasterrace)
- Negative space in horror games
- How to Create Particles in 2D Unity Game
- Beginner observation: holy crap, do sprites always take this much work?
- Game hacked for CTF event
- 1st time game dev here
- Why you should make games to learn programming
- ChronoMage is a roguelike you only have 60 seconds to beat - I'd love some feedback on my first devlog
A Tutorial on Hitsparks (part2)! Posted: 16 Feb 2020 12:37 AM PST
| ||
Posted: 15 Feb 2020 05:47 PM PST
| ||
Studio survival 10 commandments Posted: 16 Feb 2020 04:28 AM PST I thought this would be useful to many our there, feel free to share, reprint, copy, etc. https://twitter.com/DaniNovaramaEn/status/1229019232815534080 [link] [comments] | ||
Posted: 15 Feb 2020 10:35 PM PST
| ||
Work ethic and motivation - how much do you work on your project? Posted: 16 Feb 2020 08:05 AM PST Heya. I am currently a student at a university, first semester. As most people here I've always been interested in game dev and recently picked up an engine and started to make a few prototypes, get familiar with the workflow etc. A few weeks ago I've started with an actual project - something I actually want to finish and be good, the thing I've been thinking of for years, you know the drill. Work is going smoothly, however I've been wondering if I am investing enough time into it or if my work ethic is potentially lacking. On an average week-day I try to squeeze in roughly 3-2 hours of work into the project, and on weekends I usually try to squeeze in another 4~ or so. In weekdays, roughly 5-6~ hours usually end up being university related. If it wasn't for those, I'd probably double the time. However as of late I've noticed that I am not meeting my goals, kinda slacking off - not because I am not motivated to work on it, but rather because I am simply kinda tired and wanna rest - which often results in me feeling bad, given I am kinda letting my passion project stay there. Especially after hearing so many stories about indie devs really dedicating a lot of their free time to the project, it's making me simply second guess my work ethic. How much do you work on your project? Just having a day or two a week without me working on it makes me feel kinda bad. Am I a bit too ambitious? I'd mostly like to hear other thoughts on this topic and experiences. [link] [comments] | ||
Posted: 16 Feb 2020 08:51 AM PST
| ||
Anyone familiar with Cinemachine? Posted: 16 Feb 2020 09:25 AM PST
| ||
C++ memory allocator for games Posted: 15 Feb 2020 11:39 PM PST I'm interested in implementing an allocator to see what performance gains I can get. The allocator would initially allocate a large chunk of memory that could be used by some of my subsystems that currently uses new and delete a lot. Most of the material on this subject that I could find seem to be at least 5 years old. I guess this is not as important as it was 10 years ago, unless you really wanna squeeze out all performance you can get.. Anyone with experience in this field? [link] [comments] | ||
Animations and cutscenes for 2.5D game Posted: 16 Feb 2020 11:20 AM PST I'm working with a friend on a 2.5D game (is has xyz but has 2D objects) and I'm working on the graphics part. What I want to know is how to make animations (like walking) for this type of game to be easier for my friend to work with and I also want to make some animated cutscenes (like in Little Misfortune game) I also want to mention that we're using Unity. I'm not experienced with making graphics for games. (Sorry for possible grammar mistakes) [link] [comments] | ||
Asking for proofreading of my article/research on infinite game worlds and spatial data structures Posted: 16 Feb 2020 01:12 AM PST Hello, I recently started blogging. Mostly for my own benefit so I can keep a "research journal". I just finished my article on spatial partitioning which is basically my notes while learning it. I was hoping you guys could "proof read" it and point out to mistakes and inaccuracies (and typos and phrasing if you want). It's on my blog https://odrzutowiec.github.io/blog/ the top post "Space Partitioning - Sun Feb 16 10:03:46 CET 2020" but I'm copying the article here for your convenience. Thanks in advance for any help! Space Partitioning - Sun Feb 16 10:03:46 CET 2020 I've been thinking a bit more recently about infinite game worlds and roguelike games. I found a very interesting free book http://gameprogrammingpatterns.com/. It has a chapter about spatial partitioning which is exactly what I was interested in. Unfortunately that chapter is very fundamental and does not answer my question. It did give me few ideas though. My goal would be to have an infinitely big, persistent world. The game would not have to simulate every single agent in the entire world on every game loop tick. That would be silly. It would simulate only the agents within the view of the player. All other agents instead of being simulated separately would be rather kind of reduced to a "heat map of probabilities" in a similar way GTA or SimCity games do with cellular automata layers. But even in that case there would be static objects which don't require processing every tick but do require being remembered separately. For example if I'd kill a deer and then left that area to gather wood for a bonfire, I would expect the deer's corpse to still be there when I return. I can imagine a simple 1 dimensional array with a list of all objects in the world. Such a list would be really long so I would be able to load only chunks of it at a time. How do I know which chunks to load? I should load only relevant chunks so onces that are near the player or in the player's view. Well if I care about the chunks of the list of game objects in a spatial sense (only chunks close to the player) than I should assign some spatial information to those chunks (aka index them). All fine so far, lets say our chunks are laid out on a grid of 16x16 "meters" and each chunk can hold any number of objects. Not ideal for very densely populated areas but let's ignore this problem for now and continue. Knowing chunk's size and x, y coordinates of the chunk I want I can easily calculate the position of that chunk in the file and load it into memory. Great! Eureka! I can go home. But what if usually there will be big number of chunks processed at once? I'd need to do IO file operation for many of the chunks I want to load. Is there any way I could pack and order those chunks in a file to minimize IO operations when reading them? From a simple calculation we can guestimate how long an average io operation takes on a HDD. Lets assume a 7200 RPM HDD (120 RPS) with average seek time 8ms. RPM stands for "revolutions per minute" or simply rotations per minute. To read data from a spinning disk HDD has to move the head (the needle) to the right position and then wait up to 1 full rotation. Ignoring time for the cpu overhead we can say that 8ms seek + rotational latency (1s / 120rps = ~8ms) is 16ms for a single read. Simply reading a big file in continuous fashion will generate multiple io operations. Naturally seeking to neighbour tracks will be much faster than changing a cylinder and our guestimate is generally really rough. But for our purposes knowing the order of magnitude should be enough. You can read more here https://en.wikipedia.org/wiki/Hard_disk_drive_performance_characteristics. I looked into few different ideas on how to index and encode the chunks on wikipidia https://en.wikipedia.org/wiki/Spatial_database#Spatial_index and that game programming book http://gameprogrammingpatterns.com/spatial-partition.html. https://sites.cs.ucsb.edu/~suri/psdir/ASP.pdf Binary Trees While thinking about ways I could encode the coordinates in a file I arrived at Binary Trees. Not exactly a spatial data structure. Rather a fundamental computer data structure. Idea is simple a set of values is recursively divided into two subsets. Left set holds values smaller then the division point, right set holds values bigger then the division point. Only leaf nodes (nodes without children) of the tree hold actual po. There is many different permutations of that idea and there are many different considerations. Balancing the tree is often one of the big concerns. B-Trees After Binary Trees I skipped over the binary heaps, binomail heaps and priority queues. Then I found B-Trees (https://queue.acm.org/detail.cfm?id=1814327). Simply put, B-Trees are a lot like Binary Trees but can have m max children (rather then 2) and are designed such that really large trees can be kept in storage and only part of the tree is loaded to memory at any moment. Similar indexes are paged in and out of memory together. That minimises the amount of memory (and io) operations For some reason I got inspired to check if MySQL uses B-trees, and it does. Then I saw that MySql uses R-Trees for spatial indexes. Then my head started spinning, I'm in over my head. Grid But first Grid. Grid is the simples solution to my problem. Divide the world into equal size chunks with X and Y coordinates. Keep each chunk saved as a separate file is enough. Since this project is educational for me and I want to wet my feet in a bit in algorithms and data structures and the techniques similar to those used in the 3D engines I decided I still want to implement something more complex. To make it more challenging I decided I want my game to also support polygons. In case of grid it's quite easy to just cut the polygons at the chunk edges. Space filling curves Space filling curves like Hilbert Curve are very interest and simple. It would certainly help save the chunks in a file in a more "streamable" fashion since the Hilbert curve makes the file bit stream more chunky and area like instead of having acontinuous horizontal line of the entire world. It would probably decrease amount of io needed to load the right chunks from the memory. BSP Trees Binary Space Partitioning Trees are famous. They were used in the 90s for most of the 3D games, most notably Doom. It recursively subdivides the space into two convex spaces using hyperplanes as partitions. Quadtrees Next are quadtrees. I know quadtrees or more specifically octrees are commonly used in the 3D video game industry. If I'm not mistaken leading occlusion culling software Umbra3D (used by such games as DOOM 2016 or Witcher 3) uses octrees as foundation for their algorithm. My first thought about quadtrees is that they share a lot with the hilbert curve. It seems like a quadtree could be encoded using hilbert curve. Quadtrees are also a special case of a BSP Tree. K-d tree Another binary tree. This one is k-dimensional. It's actually another special case of a BSP Tree. Each leaf of the tree is a point that implicitly splits the space into two so called "half-spaces". K-d trees are used in ray tracing probably because they are very efficient at queries but they are too slow for real time manipulations, building and rebuilding takes too long. R-trees Wikipedia entry on r-trees is promising. They have native support for polygons and were specifically design for large datasets that cannot be kept entirely in memory and have to be paged in and out of ram from disk. seems like r-trees generally have faster lookups and quadtrees are faster to build, interesting trade off. Another interesting fact about r-trees is that they use MBR (minimal bounding rectangles) which means I can have the top level of the tree spanning entire galaxy and immediate next level really small for example 16 square meters. That means no unnecessary subdivisions and index tree branches in a galaxy where only fraction of one percent has been generated. Geohash Geohash approach seems very similar to the Grid but it has few interesting properties on it's own. Geohash has a single hash code value, not a coordinate pair like the Grid. Arbitrary precision of coordinates and gradual loss of precising while removing characters from the end of the hash code could come in useful. This also results with places nearby presenting similar hash code prefix. This naturally leads to indexing the hashes, B-Tree would be ideal. The hash code itself is a base 32 encoded interleaved pair of binary indexes for coordinates. Pretty smart. Honestly half way through this research I got bored with it and with making a roguelike anyway. If I'd follow through I'd probably go for a combination of Geohash, Grid and Hilbert Curve. Geohash would allow arbitrary sizes, allowing entire galaxy of meters. Grid is the simple partitioning algorithm and can be encoded directly in geohash and Hilbert Curve is a nice packing algorithm to order grid cells and save on disk to be streamed to memory later. I am really happy I did this research, I've learned a decent chunk of algorithms and data structures and feel much more confident now about my understanding how games organise space and implement open worlds. [link] [comments] | ||
Posted: 16 Feb 2020 08:32 AM PST i read somewhere that when creating a game, the window should handle the inputs and the world should handle the entities, why is that? [link] [comments] | ||
Is this zombie too gory for the 10+ console/mobile crowd? No drippy blood or anything. Posted: 16 Feb 2020 10:36 AM PST
| ||
Posted: 16 Feb 2020 04:19 AM PST
| ||
SVN for Art and GIT for Programmers? Posted: 16 Feb 2020 09:35 AM PST As a programmer I personally love git, mostly because it allows me to make multiple local commits. Something I haven't been able to figure out how to do that with SVN. So my idea was to be able to use the local commits of git and not have to bother the artists with switching to git, was to combine git and svn. With the goal that all the programming/code goes through git and all the art assets through svn. Is that and sensible option and is there something I need to watch out for, especially when it comes to branches and merges? [link] [comments] | ||
Complete Guide to OpenAL with C++ Part 1 Posted: 16 Feb 2020 01:44 AM PST
| ||
Posted: 16 Feb 2020 08:32 AM PST If this has already been discussed a lot (or if I'm being unnecessarily anal), I can remove my post. I did try to search the forum first. What I'm struggling with right now - I'm building my first game in Unity. I know I can copy and paste across game objects, but I'm still building and experimenting and tweaking a lot with different elements after I've already built a lot of it. So if I'm experimenting with a UI element, for example, and change one thing, I'm then clicking through a bunch of other UI elements, loading and unloading levels, to change or make sure that one thing is consistent across the board. (Things like font size across buttons, those really small details that can make a game feel sloppy if they aren't consistent.) I don't mind the tedium of it, but as it gets bigger, it just feels more overwhelming and like I'm not really in control of it anymore, like things are falling out of my head and becoming a mess. I'm just wondering if there's a more efficient process to keeping track of these details and making sure they're consistent everywhere, or if this is just one of those things I will develop my own process for as I move forward. Thanks in advance for any advice. [link] [comments] | ||
Giving away 3 copies of my first game, Retro! (X-Post from r/pcmasterrace) Posted: 16 Feb 2020 12:05 PM PST | ||
Negative space in horror games Posted: 15 Feb 2020 06:58 PM PST
| ||
How to Create Particles in 2D Unity Game Posted: 16 Feb 2020 03:07 AM PST
| ||
Beginner observation: holy crap, do sprites always take this much work? Posted: 16 Feb 2020 11:41 AM PST Just starting off on a top-down game project with my son, and playing around with Aseprite I noticed how much tedium is involved in drawing your character to move. It probably took me 3+ hours to get the hang of Aseprite and get a single character at a stand still and in 9 directions. Now I'm looking at 6 frames for running in all directions, so: 9 directions x ( 6 running frames + 1 stand still + 3-4 action frames + ? other action frames) = a whole lot of frames At this point, the graphics alone are already giving me pause. I take it this is something you just get better at? Or am I getting a fraction of the window into why Game Devs work insane hours on their projects? [link] [comments] | ||
Posted: 16 Feb 2020 11:11 AM PST Hi. I guess this is kinda opposite of game development but maybe someone find it useful. Recently i've participated in CTF event that Nullcon organized and there was a challenge to hack a game and find all flags. I wrote a simple write-up and would like to hear what do you guys think. Thank you. https://medium.com/@0tkaz.re/zelda-adventures-nullcon-ctf-2020-343e2191e22 [link] [comments] | ||
Posted: 16 Feb 2020 11:05 AM PST I was wondering how to start making a game and what engine is the best I've tried unreal unity and godot [link] [comments] | ||
Why you should make games to learn programming Posted: 16 Feb 2020 07:18 AM PST
| ||
Posted: 15 Feb 2020 05:17 PM PST
|
You are subscribed to email updates from gamedev - game development, programming, design, writing, math, art, jams, postmortems, marketing. To stop receiving these emails, you may unsubscribe now. | Email delivery powered by Google |
Google, 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States |
No comments:
Post a Comment