How to do a Level 0 DFD for a game? - software-design

I am creating a data flow diagram for a game that I am creating and I was thinking what a level 0 dfd would look like. So far I have come to the conclusion that the input would be mouse clicks and keyboard input. The process would be the game. But I don't know what the output would be seeing as a game is continuous until it is over and then there is no output.

Basically you want to make a game except you don't know what to make...
Well, this is the best I can do for you https://obviam.net/posts/2010/05.basic-game-loop/ it'll help you understand and organize your game loop.
Don't worry it says android in it, the basic concept is the same and this is a link i had on my hand...

Related

Creating and manipulating Perlin noise in unity

I'm completely new to Godot and I'd like to make an underwater game. I feel like one of the first steps is to generate something like a trench. I've touched on Perlin noise in Processing, but I have no idea how to manipulate it to make something resembling a trench. I also don't know how to write in Godot, but I assume that will come with yt tutorials and time.
I haven't tried it yet, simply because I have no clue how to or where to start.

How do I adapt AStar in Godot to platformers?

I've been looking for a robust method of pathfinding for a platformer based game I'm developing and A* looks like it's the best method available. I noticed there is a demo for the AStar implementation in Godot. However, it is written for a grid/tile based game and I'm having trouble adapting that to a platformer where the Y axis is limited by gravity.
I found a really good answer that describes how A* can be applied to platformers in Unity. My question is... Is it possible to use AStar in Godot to achieve the same thing described in the above answer? Is it possible this could be done better without using the built in AStar framework? What is a really simple example of how it would work (with or without AStar) in GDscript?
Though I have already posted a 100 point bounty (and it has expired), I would still be willing to post another 100 point bounty and award it, pending an answer to this question.
you could repurpose the Navigation2D node for platformer purposes. The picture below shows an example usage. The Navigation2D node makes it possible to navigate the shortest path between two point that lie within the combined navigation polygon (this is the union of all NavigationPolygonInstances).
You can use the get_simple_path method to get a vector2 array that describes the points your agent/character should try to reach (or get close to, by using some predefined margin) in sequence. Place each point in a queue, and move the character towards the different points by moving it horizontally. Whenever your agent's next point in the queue is too high up to reach, then you can make the agent jump.
I hope this makes sense!
The grey/dark-blue rectangles are platforms with collision whereas the green shapes are NavigationPolygonInstance nodes
This approach is by no means perfect. If you were to implement slopes into your game then the agent may jump up the slope instead of ascending it normally. It is also pretty tedious to create all the shapes needed.
A more robust solution would be to have a custom graph system that you could place in the scene and position its vertices. This opens up the possibility to make one-way paths and have certain edges/connections between vertices marked as "jumpable" only. This is a lot more work though if you can not find any such solution online.

What's the best method to implement multiplayer on a Unity Billiard game?

I'm making an online billiard game. I've finished all the mechanics for single player, online account system, online inventory system etc. Everything's fine but I've gotten to the hardest part now, the multiplayer. I tried syncing the position of each ball every frame but the movement wasn't smooth at all, the balls would move back and forth and it looked "bad" in general. Does anyone have any solution for this ? How do other billiard games like the one in Miniclip do it, I'm honestly stuck here and frustrated as it took me a while to learn Photon networking then to find out it's not that good at handling the physics synchronization.
Would uNet be a better choice here ?
I appreciate any help you give me. Thank you!
This is done with PUN already: https://www.assetstore.unity3d.com/en/#!/content/15802
You can try to play with synchronization settings or implement custom OnPhotonSerializeView (see DemoSynchronization in PUN package). Make sure that physic simulation disabled on synchronized clients. See DemoBoxes for physics simulation sample.
Or, if balls can move along lines only, do not send all positions every frame. Send positions and velocities only when balls colliding and do simple velocity simulation between. This can work even with more comprehensive physics but general rule is the same: synchronize it at key points. Of course this is not as simple as automatic synchronization.
Also note that classic billiard is turnbased game and you do not have all the complexity of players interaction. In worst case you can 'record' simulation on current player client and 'playback' it on others.

Dynamic Movies using Artificial Intelligence

I'm an AI Student, previously I was thinking about something, every time we guys we see a movie, the next time we the movie, it's the same thing, so those who have a knowledge of AI, such as the graph theory and so on, do you think it is feasible to create a dynamic movie, that is the first time you see it, it follows a path in the graph, the next time you see it, it follows a different path and as a result, we get a different movies, do u think this is feasible ??
It's a shame I can't remember the French researcher who's doing research on movie style cameras. While not an interactive movie as you propose, you could alter the strength and importance of each character, and it would position, pan and zoom the camera according to cinematography rules. It looked very promising.
While it would show you the same movie, you could see it in infinitely different variants in regards to camera positioning, each of which could lead to a different interpretation :)
But for your proposal, just go with some logic based planning AI. No need for learning as others says. You have a bunch of sequences, and a bunch of logic to describe how they fit together, which prerequisites they have et cetera. If the logic is good, it would always result in a meaningful film. But it'd be a hard task. It's hard just to make a linear film ;)
(There's a whole chapter in Russel and Norvig)
Where is an Intelligence in it? It looks like a bunch of ifs / switches with random.
The idea of AI is based on learning. Your AI component needs to adjust based on some external inputs, which I can't see in your description.
If the user could somehow tell your AI component that it likes / dislikes what he sees, than it will make sense. For example, you display a slideshow of photographs and the user tells you whether he likes or dislikes a photograph and you then choose future photographs based on his preference. You could learn from other user's preferences, too. That's AI.

2d terrain generation in real time

I'm trying to create a game similar to this (Note:When you click 'play', there are SFX in the game which you can't seem to turn off, so you may want to check volume). In particular, I'm interested in knowing how the 'infinite' landscape is generated. Are there any tutorials/articles describing this? I came across procedural generation, but I'm not quite sure what topics I should be looking for (or if it's even procedural generation).
(I'm using C#, but I don't mind the language as I assume the theory behind it remains the same)
That one seems like it would be pretty easy to duplicate -- I would imagine an algorithm that calculates the next "step" of the landscape (the part that is off the screen). It would need to know the prior height (and maybe even the previous slope) in order to then (randomly) increment or decrement the step. You could then tweak the algorithm to be more fluid (gently sloping), or extreme (whipsawing back and forth) as time passes/levels are completed.
Before I clicked the link though, I thought you might have been talking about voxel landscapes -- which I haven't thought about for over a dozen years, but amazed me when I first saw them. I did some googling, and thought you might be interested in this:
http://www.gamedev.net/reference/articles/article655.asp
(Not sure if the Mars demo still exists, or if anyone has a DOS machine to play it on, but this is a good example that shows what it used to look like: http://www.codermind.com/articles/Voxel-terrain-engine-building-the-terrain.html )

Resources