Starting a game - Tetris infinite runner? - unity3d

Having trouble describing what I'm looking for - essentially, I'm classed as a beginner at unity, I've only made artwork for games, never created the core myself.
Preface: Here's game in a nutshell:
The camera is looking down with an Orthographic angle
The ground in scrolling down the screen, you're walking towards the top of the screen. In essence, you're on a treadmill.
As you walk/progress, shapes start entering the screen, like Tetris.
You simply walk over to that shape, pick it up and take it 1 of 3 baskets on the - left side of the screen.
Repeat until end of level
Help:
How would I start, what should I start with?
Do I seek out examples and guides on creating an endless runner, even though the game has more similarities to Tetris but with interactions? Because of this, I'm lost for words on what to search for in order to gain the knowledge to build what I'm thinking.
Background:
I'm coming from an Artistic background, I work with web development daily, so I think I'll be able to grasp the basics quick enough, I just need that finger pointing at the obvious!

Given that you're coming from a web development background I can see why you're looking for hoping to find pinpointed resources for your specific game. Web development generally involves finding specific ways to tackle each specific problem you encounter.
One thing you will want to be aware of is that Unity development is a bit different in that most things are built using the core set of basic fundamentals. Because of this I would actually recommend looking into tutorials that will teach you about the basics rather than trying to find something specific for what it is you're building, as you will be able to apply these basics to encounter any of the problems you encounter a long the way. The basic Unity tutorials provided by the Unity team do a great job of teaching these basics: The Unity Tutorials Page
At the very least the Roll-A-Ball tutorial should teach you most of the basics as it pertains to how objects work, creating scripts, etc.
After you are a bit more comfortable with Unity in general, then I would suggest looking into some more focused tutorials that are a bit closer to what you want to do as these will give you a better idea of how you can apply the basics you've learned. One recommendation I would have for the game you're trying to make is
this runner tutorial by Catlike Coding.
While the game you'll be creating in that tutorial will play quite differently than what you're describing, this should give you a better idea of how you can approach some of the challenges that you'll encounter in the development of your game (things like continually creating objects).

Related

I want to make a small co-op 3D RPG. Where do I begin?

I know how to program although I haven't done much in C# yet. But I understand every code snippet I read. I mostly script at my job. I have little to no experience in graphical design or animations.
The only thing I have done so far in Unity 3D is the ball rolling tutorial.
I have some questions though as I have a hard time understanding where I should begin. I know co-op 3D RPG is a project with a HUGE scope, but this is what I would like to accomplish to begin with:
Mini world (half the size of a WoW zone)
Populate world with terrain, trees and some buildings. Maybe a cave.
Have a playable character that can move around and interact with some objects.
Could anyone guide me into the right direction? What documentation should I read? Are there any RPG packs or plugins that can help me achieve this? Any nice tutorials you know of?
If 3D is too complicated to start with, I'm also willing to try an isometric game.
PS: Are there any free (or reasonably priced) HD asset packs that include animations? Or will I have to provide those myself as well?
Co-Op RPG's are quite large; Infact most people have tools that would help this speed up production; Although you're asking where to start. Most of my programming knowledge comes from theory and pretty basic knowledge; But I have an idea on where you should start!
A big factor on Co-Op is well.... Of-course CO-OP so something you should play around with first is data and how it's stored but even though you have knowledge of this factor Unity has a good way of storing it from Host to Client!
https://docs.unity3d.com/Manual/UNetStateSync.html?_ga=2.98238303.1333003911.1509902124-1740889112.1506544791
Another factor of -Co-Op is the dynamic spawning that is going to be pretty heavy although their are quite a few ways of doing this I'm sure their are plenty of correct as-well as incorrect ways of doing it!
Personally I would develop a database and call-Events with SQLite though this would be a heavy and complex job to do correctly and efficiently
but unity3d has UNetCustomSpawning documentation that seems to work pretty well for it's inteded use although it takes some heavy tinkering to get right so I would suggest once you get synchronization done you should check out some Spawning
https://docs.unity3d.com/Manual/UNetCustomSpawning.html
With Every Co-Op Action it must be handled and heres how!
https://docs.unity3d.com/Manual/UNetActions.html
How about the actual connection?
https://docs.unity3d.com/Manual/UNetDiscovery.html
Although reading alot of this may help; I would suggest rading through this and giving it a shot.
https://docs.unity3d.com/Manual/UNetSetup.html
and if you find no help or it's doing you some trouble
https://unity3d.com/learn/tutorials/s/tanks-tutorial
You may hear about "Tanks", alot though I personally am quite stubborn so I couldn't bear to look into it untill I did just earlier this month; It shows a correct way of doing things from Shooting, to spawning, and may other things.
I am un-certain this is a good or bad answer for you as this I believe is quite a personal question but as their are about a thousand and a thousand more ways of doing this I think what I have shown is a great way of starting just to get an idea of how the ball should start rolling!
-Thanks!

UnrealEngine4 - Interactive 360 picture

I have very little experience with UnrealEngine (just a basic handling of the menues as I played around a bit creating levels back in the day) and also have an Oculus DK2 to test out VR. Is it possible to create a UE Scene that displays a 360 picture, and then add "hotspots" to the picture that trigger voiceovers or even text messages on the screen?.
Basically the client wants to Demo their room and add commentary to specific items within the scene, but they do not have the resources for hiring 3D modelers. So they would settle for a static room (picture) where you can just look around (obviously not walk) and trigger some events depending on where you look.
Can anyone point me in the right direction, or enlighten me that this is not possible?
What you suggest sounds plausible - though it is not going to be easy under a tight deadline. Unreal Engine 4 is quite a bit different from 3 and earlier.
You also can get access to the C++ Source now via github when you register.
Take a look at the official best practices and the sample links off that to see if you can get that running on your development kit. That will at least give you an idea of what you are up against.

Porting a mobile game written in C++/OpenGL to UE4

I am very sad because a few days ago the SDK I was using called Marmalade was announced to be shutting down. I was using that SDK to bring my game to the iOS and Android platforms with great ease.
I am considering switching to Unreal Engine 4, however I have 0 experience working with it. How simple would it be to port my C++/OpenGL codebase to it?
I know there is a million ways to work with unreal, like blueprints and so on, but let's say I already have an engine, what steps would I take to port it?
If anyone could provide a rough step by step process of how you would do it and possibly link me to some learning materials I would be very greatful!
Thanks all
The question is too broad but I'll try to answer it anyway.
The low level part of your engine (input, rendering, serialization, file operations, etc) is taken care of by UE4. You pretty much won't be able to use parts of your engine in that regard.
GUI is also something that you are going to have to remake the UE4 way.
Your gameplay logic can be reused. But UE4 has its own approach for gameplay handling as well so you should familiarize yourself with it. Blueprints are very powerful and to use it you gonna have to carefully go through all of your gameplay classes, reparent them from UE4 basic classes (UObject, AActor, AController etc), then mark methods and class members with UFUNCTION and UPROPERTY so it would be exposed to Blueprints.
I would recommend to try making a simple project to get a hang of how things are done in UE4 and only then to try to reimplement your game in UE4. UE4 has a good documentation so study it.
I personally had an experience to switch from a different engine to UE4 and it took our team around 4 month, but our project is big. We pretty much used none of the code from our old engine. We followed the same approaches and same logic, but we pretty much reimplemented everything.

OpenGL ES and real world development

I'm trying to learn OpenGL ES quickly (I know, I know, but these are the pressures that have been thrusted upon me) and I have been read around a fair bit, which lots of success at rendering basic models, some basic lighting and 'some' texturing success too.
But this is CONSTANTLY the point at which all OpenGL ES tutorials end, they never say more of what a real life app may need. So I have a few questions that Im hoping arent too difficult.
How do people get 3d models from their favorite 3d modeling tool into the iPhone/iPad application? I have seen a couple of blog posts where people have written some python scripts for tools like Blender which create .h files that you can use, is this what people seem to do everytime? Or do the "big" tooling suites (3DS, Maya, etc...) have exporting features?
Say I have my model in a nice .h file, all the vertexes, texture points, etc.. are lined up, how to I make my model (say of a basic person) walk? Or to be more general, how do you animate "part" of a model (legs only, turn head, etc...)? Do they need to be a massive mash-up of many different tiny models, or can you pre-bake animations these days "into" models (somehow)
Truely great 3D games for the iPhone are (im sure) unbelievably complex, but how do people (game dev firms) seem to manage that designer/developer workflow? Surely not all the animations, textures, etc... are done programatically.
I hope these are not stupid questions, and in actual fact, my app that Im trying to investigate how to make is really quite simple, just a basic 3D model that I want to be able to pan/tilt around using touch. Has anyone ever done/seen anything like this that I might be able to read up on?
Thanks for any help you can give, I appreciate all types of response big or small :)
Cheers,
Mark
Trying to explain why the answer to this question always will be vague.
OpenGLES is very low level. Its all about pushing triangles to the screen and filling pixels and nothing else basicly.
What you need to create a game is, as you've realised, a lot of code for managing assets, loading objects and worlds, managing animations, textures, sound, maybe network, physics, etc.
These parts is the "game engine".
Development firms have their own preferences. Some buy their game engine, other like to develop their own. Most use some combination of bought tech, open source and inhouse built tech and tools. There are many engines on the market, and everyone have their own opinion on which is best...
Workflow and tools used vary a lot from large firms with strict roles and big budgets to small indie teams of a couple of guys and gals that do whatever is needed to get the game done :-)
For the hobbyist, and indie dev, there are several cheap and open source engines you can use of different maturity, and amount of documentation/support. Same there, you have to look around until you find one you like.
on top of the game engine, you write your game code that uses the game engine (and any other libraries you might need) to create whatever game it is you want to make.
something many people are surprised with when starting OpenGL development is that there's no such thing as a "OpenGL file format" for models, let alone animated ones. (DirectX for example comes with a .x file format supported right away). This is because OpenGL acts somewhat at a lower level. Of course, as tm1rbrt mentioned, there are plenty of libraries available. You can easily create your own file format though if you only need geometry. Things get more complex when you want to take also animation and shading into account. Take a look at Collada for that sort of things.
again, animation can be done in several ways. Characters are often animated with skeletal animation. Have a look at the cal3d library as a starting point for this.
you definitely want to spend some time creating a good pipeline for your content creation. Artist must have a set of tools to create their models and animations and to test them in the game engine. Artist must also be instructed about the limits of the engine, both in terms of polygons and of shading. Sometimes complex custom editors are coded to create levels, worlds, etc. in a way compatible with your specific needs.
Write or use a model loading library. Or use an existing graphics library; this will have routines to load models/textures already.
Animating models is done with bones in the 3d model editor. Graphics library will take care of moving the vertices etc for you.
No, artists create art and programmers create engines.
This is a link to my favourite graphics engine.
Hope that helps

Which technologies/concepts do you suggest I learn before creating an iPhone game?

Sorry if this is a broad question, but other than Objective-C, Cocoa, and OpenGL ES, what technologies or concepts would you suggest I read up on before writing a game for the iPhone? I'm a beginning game developer and need all the help I can get :)
MATHS - I would advise this topic
Some example areas of interest for applications in Game Development
Calculus, Geometry,The Cartesian Co-ordinate System, Vectors, Matrices, Transformations etc...
Sorry, my answer is not computing related.
A game tells a story, a great game tells a great story. So I would suggest to learn principles of storytelling.
Not going as scholar as Aristotle's Poetics, I recommend more modern Story by Robert McKee. It focuses on movie making, but I am pretty sure that many of the concepts he develops can be applied to game making.
You should read some articles on GameDev. Obviously, learning some of the fundamental concepts in computer graphics would be very helpful. But really, once you get to where you can write Objective-C and understand the APIs, go ahead and get started. You will learn a lot in the process; of course, keep learning and reading about these things I mentioned, but start coding. Find some books on game programming, particularly AI and so forth. Go ahead and get your feet wet programming though. Of course, be sure you learn your language thoroughly.
Quite frankly, I have found that I never know what I need to know until I actually get my hands dirty. That's why I suggested here that someone looking to jump into designing a 3-D iPhone game start with some simpler, targeted projects. These targeted projects can teach you core concepts as you put them to practical use. OpenGL seemed like this impossible-to-understand black box until I made myself perform some simple tasks with it. In a few weeks, I had an application based on it.
In college, I would spend weeks trying to understand the theory behind an aspect of thermodynamics, but then I would see one practical application for it and the whole thing would fall into place. Since then, I've focused on finding specific applications for concepts before spending too much time with the pure theory behind them.
A solid understanding of what makes a good gaming UI especially on the iPhone would be key, especially with the options it provides, be it accelerometers, or onscreen touch inputs.
I'd be sure to try out existing games and see what works, what doesn't, and what gets good feedback. You may also want to look at Flash and DS based games to see what works on other small screens/devices.