Jump to content

[TOPIC: topicViewTemplate]
[GLOBAL: userSmallPhoto]
Photo

making a game world
Started by w.ummels Oct 13 2018 12:00 AM

14 replies to this topic
[TOPIC CONTROLS]
[/TOPIC CONTROLS]
[modOptionsDropdown]
[/modOptionsDropdown]
[reputationFilter]
[TOPIC: post.html]
#1

w.ummels

[GLOBAL: userInfoPane.html]
w.ummels
  • Observer

  • 13 posts
  • Corona SDK

Hello,

i have recently started my first project and im now stuck on making a world.

do i have to make a .lua file for it and how do I code it?

 



[TOPIC: post.html]
#2

XeduR @Spyric

[GLOBAL: userInfoPane.html]
XeduR @Spyric
  • Contributor

  • 361 posts
  • Corona SDK

Hello and welcome!

It sounds like you are completely new to programming. I would recommend that you search for an introductory course to Lua or to programming in general. Depending on your preference, there are good books, Youtube videos, websites, etc.

For Corona, you should also check out https://coronalabs.com/learn/ and https://docs.coronalabs.com/tutorial/. In addition, when you are first playing around with Corona, you can check out its sample projects in the simulator via the "Help" tab.



[TOPIC: post.html]
#3

w.ummels

[GLOBAL: userInfoPane.html]
w.ummels
  • Observer

  • 13 posts
  • Corona SDK

Hello,

do you know any books/ courses that can help me with my question?

I can't find any



[TOPIC: post.html]
#4

nick_sherman

[GLOBAL: userInfoPane.html]
nick_sherman
  • Corona Geek

  • 1,628 posts
  • Corona SDK

It's difficult to point out specific books/tutorials because 'game world' is a very broad term. It could mean anything - a top down RPG world, a side-scrolling platform world, an isometric city world, or anything else you can think of.

The key is to just learn programming, and Corona, in general, through the Corona docs and examples, hundreds of tutorials, thousands of posts on this forum, RoamingGamer's github etc.

There won't be a course that tells you exactly how to make the game in your head, once you have built your knowledge you will then know how to apply that to build anything you like. Just like the guys who built GTA V, there was no guide on how to make it, they just work it out using their experience gained from completely different projects.

If you give more info on what you are trying to build there maybe specific tools (tile editors, level editors, spritesheet makers) people can point you at, but you'll still need to learn the basics or nothing will make any sense.

[TOPIC: post.html]
#5

w.ummels

[GLOBAL: userInfoPane.html]
w.ummels
  • Observer

  • 13 posts
  • Corona SDK

im trying to make a sandbox world with biomes, minibiomes ect.



[TOPIC: post.html]
#6

nick_sherman

[GLOBAL: userInfoPane.html]
nick_sherman
  • Corona Geek

  • 1,628 posts
  • Corona SDK

Well for something like that you are going to need a tile engine. I believe PonyTiled is the most popular for 2D/top down worlds and Qiso is a new engine for isometric worlds.

However I would advise that these aren't tools for beginners. You really need to know what you're doing with lua and Corona to get the most out of them and go beyond the functionality of the demos.

A tile engine will handle things like loading maps that you build with something like Tiled, placing new objects, the camera, and most crucially only loading tiles that are visible to the camera - this is called culling. You could of course build all this yourself but then you need to be even more experienced.
  • richard11 likes this

[TOPIC: post.html]
#7

XeduR @Spyric

[GLOBAL: userInfoPane.html]
XeduR @Spyric
  • Contributor

  • 361 posts
  • Corona SDK

@w.ummels, what kind of sandbox game are you thinking of? Something like Terraria?

 

Hello,

i have recently started my first project and im now stuck on making a world.

do i have to make a .lua file for it and how do I code it?

Based on your comment of if you need to make a .lua file for it and how do you code it, I would expect that your programming experience is very limited. Creating sandbox games can be a daunting task and not something that I would recommend anyone to start out with.

The best way to learn programming is by doing, but you shouldn't start out with something too complex as it may hinder your learning process. I would recommend trying to complete some smaller projects in the beginning. You can find some Corona specific, simple to follow tutorials for creating various types of games at https://code.tutsplus.com/categories/corona-sdk.

For Lua itself, you might want to bookmark https://www.lua.org/start.html. There, you have access to Lua documentation and learning resources, like http://lua-users.org/wiki/TutorialDirectory. 



[TOPIC: post.html]
#8

w.ummels

[GLOBAL: userInfoPane.html]
w.ummels
  • Observer

  • 13 posts
  • Corona SDK

Hello,

im indeed thinking about something like Terraria.

based of your comment I think that is way to hard for me. what type of game  is good to start with?



[TOPIC: post.html]
#9

nick_sherman

[GLOBAL: userInfoPane.html]
nick_sherman
  • Corona Geek

  • 1,628 posts
  • Corona SDK

Sound advice which backs up my view. If you click on my profile you'll see I joined in September 2011. Could I build a sandbox game then? Absolutely not, and that was with some prior experience with C64, Amiga and Visual Basic programming.

Could I do it now? Of course, but there were lots of smaller projects on the way, and lots of mistakes made on bigger projects, to get me there.

I started with simple quiz apps, and to be honest I made the most money with my earliest, appallingly-coded efforts!

But I didn't even start my own projects until I had played around with tutorials and templates and learned how they worked first.

[TOPIC: post.html]
#10

XeduR @Spyric

[GLOBAL: userInfoPane.html]
XeduR @Spyric
  • Contributor

  • 361 posts
  • Corona SDK

What type of game is really entirely up to you. I would recommend taking some small projects that you can wrap up in 1-2 weeks, i.e. forget all sorts of monetization, multiplayer and social features, etc. for your first few projects. Just get used to how everything works.

You can get started with some tutorials from the code tuts page that I linked. There various different types of tutorials, like how to create a poker game, space invaders clone, helicopter game, some basic racing game, etc. Some of them are a bit old and may have some depreciated code in them, though.

But, the best kind of practice in reality is working on your own projects, things that you want to create. Just imagine some simple games and start developing and learning!



[TOPIC: post.html]
#11

Rob Miracle

[GLOBAL: userInfoPane.html]
Rob Miracle
  • Moderator

  • 24,970 posts
  • Corona Staff

Corona is more than capable of building games like Terraria (I think this is what you're talking about: https://terraria.org/).

 

Generally, around here, we would call this a platformer more than talking about worlds and biomes. Corona can't do this alone. You will need a map editor and the recommended one is Tiled (http://mapeditor.org) and a third party library like PonyTiled that takes the maps created by Tiled and makes them easy to work with Corona.

 

The video at https://terraria.org/ shows a lot of effects going on and a lot of moving parts. All of this is going to take code and potentially a lot of it. Corona API's, in particular, our Physics implementation can help with swinging vines and the arced bullet fire. 

 

It's doable, but it's going to be a lot of work. I would agree with everyone else. Since you're new to all of this start off with something simpler. As your skills develop then you can get to where you can build a platformer.  

 

Please make sure you start here: https://docs.coronalabs.com/guide/programming/index.html

 

It will get you started with a lot of skills needed to start making games.  Then download the Sticker Knight template from our marketplace and get an idea on how to start making a platformer!

 

Rob



[TOPIC: post.html]
#12

roaminggamer

[GLOBAL: userInfoPane.html]
roaminggamer
  • Corona Geek

  • 7,363 posts
  • Corona SDK

Optional, but knowing a little helps us help you.

If you don't feel it is too invasive, tells us something about who you are and what you know.

  1. Are you still in school?  What grade?
  2. What classes have you taken that you think relate to game development?
  3. How far along in math are you?
  4. What kind of machine are you working on a Windows or a OS X PC.
  5. Do you have any programming experience?  What languages, how long?
  6. Do you have any experience with other game engines/SDKs and how much?
  7. Do you have any experience with art tools, sound tools, ... , which and how much?
  8. Have you ever written a game?
  9. Do you remember the first game you ever played?
  10. Can you list a few games you'd enjoy remaking?

 

As far as what to make first?

I agree with Rob and the others who've suggested this, work your way through the tutorials and guides.  Also examine each of the samples that comes with Corona (launch Corona and click Samples [lower-left corner for Windows version of simulator]).

 

Note: Once you are running a 'sample' in the simulator, you can use the 'file menu' and select 'Show Project Files' to see the folder with that sample's code.

 

Next up, check out the marketplace and download all of the free game templates: https://marketplace.coronalabs.com/

 

Walk through them and change small parts to see what the effect is.

 

Once you are familiar with concepts, list out some basic games (preferable a one mechanic) like:

  • whack-a-mole
  • flappy bird 
  • space invaders - a little less basic
  • asteroids 

Try to write a list describing each game in terms of mechanics, inputs, responses, art requirements, sound requirements.  i.e. A spec of an existing game.  

 

Then, ask yourself, "Can I make this single part of the game?"  If you think so, try to make it.  If not, try to learn about how to make it.  If you get stuck, come here, tell us what you're doing and get help.

 

Rinse, repeat, ....

 

Finally, or alternately, try to make one of these basic games.  Don't focus on making money or even makings something to put on a store.  Just try to make the game for yourself.

 

Again, rinse, repeat, ....

 

Do this for a year or longer and you'll be ready to start teaming up or to consider taking on bigger projects.  (Depending on how much effort you put in and on your native talent for this kind of thing.)


Edited by roaminggamer, 14 October 2018 - 10:41 AM.

  • Michael Flad and Appletreeman like this

[TOPIC: post.html]
#13

w.ummels

[GLOBAL: userInfoPane.html]
w.ummels
  • Observer

  • 13 posts
  • Corona SDK

Thank you very much for helping me. I appreciate this a lot!!!!!!

 

The answer to your question's:

 

1 yes, 7th grade (Junior high)

 

2 none

 

3 beginner (im not very good at it)

 

4 OS X

 

5 no

 

6 no

 

7 I only have experience with Piskel to make my sprites (https://www.piskelapp.com)

 

8 no

 

9 no

 

10 not specific games but I will enjoy making tower defense, sandbox and platform games

 

I'm 12 years old and I am from the Netherlands 



[TOPIC: post.html]
#14

nick_sherman

[GLOBAL: userInfoPane.html]
nick_sherman
  • Corona Geek

  • 1,628 posts
  • Corona SDK

Based on your answers my advice is not to dive in trying to make anything in particular, and especially not tower defence, sandbox or platform games. You need to learn the basics of programming first or you will get very frustrated, very quickly.

 

Programming is huge amounts of fun, because it's about solving one problem at a time the best you can using the knowledge you have at the time. You never stop learning, every programmer looks back at their code from as recent as 6 months ago and cringes. 

 

Every programmer has to start at the beginning, and you have a long time ahead of you to do that. The guys who make Call Of Duty or Fortnite did not wake up one day with that ability, they started with hello world, then maybe extended that to type in their name and have the computer write 'Hello Tony' back. Then moved on to learning all the fundamentals of programming - variables, expressions, arrays, loops, functions, objects, classes etc. Only then is something seemingly simple like tic-tac-toe achieveable.

 

it's much easier nowadays with all the online tutorials and courses to make that process fun as well as learning the theory.



[TOPIC: post.html]
#15

roaminggamer

[GLOBAL: userInfoPane.html]
roaminggamer
  • Corona Geek

  • 7,363 posts
  • Corona SDK

@ w.ummels,
 
1. Thanks for your reply.  That helps so very much.  Often folks come in and ask questions and I have no idea what they know and understand, so answering is very hard.
 
2. I'm going to post a bunch of stuff below.  I'm going to be plain and straight-forward in my advice.  Do not take what I say as judgement.  I am generalizing based on what I know from my own experience and what I now know generally about yours. 
 
I still don't know your strengths and weaknesses and in this case they don't really apply.  What I do know is what will likely be do-able and learn-able for you at this time.
 
Forget About Complete Games
My first bit of advice is, forget about making a complete game.  At this level of experience, it is way out of your grasp.  
 
When I say complete game, I mean something that could make it past a review process for Apple or Steam.
 
Instead, make tiny parts of games.  Focus on micro-mechanics first, then focus on combining those parts into something bigger.
 
I'm not saying that you need to abandon the idea of making one of your preferred game types.  Instead, try to make little bits and pieces that add up to the whole game.   This will involve lots of trial and error, lots of iteration.
 
(I'll give a suggested list of things below.)
 
Choose One Game Type First
You listed:
  • Tower Defense (TD) Games
  • Platform(er) Games 
  • Sandbox Games
There are all quite different and frankly the last one is pretty vague.  So I would choose either TD or a platformer.
 
Tip: TD is easier to get started on than the latter.
 
 
Take Three Paths
No pun intended, but even if you decide to focus on TD games, your studies, learning, and efforts should take three distinct paths:
 
PATH #1 Study, read, and follow the resources here on the site:
  • API Docs (https://docs.coronalabs.com/api/) - Bookmark this on your browsers top links area,  These are the core references for all non-plugin features.  If you are not referring to the API everyday while you work, you're not doing it right.
  • Getting Started (https://docs.coronalabs.com/guide/programming/index.html) - Start here and read, follow along.  Don't worry if it doesn't all click the first time you go through it.  Even though this is the implied starting point, there are a lot of things to learn there and many won't make entire sense to you till later or until you do them many times.
  • Tutorials (https://docs.coronalabs.com/tutorial/index.html) - Definitely read through and try all the code in these.  Make changes to the code to see what the effects of those changes are.  When you run into weird stuff, post on the forums, link the tutorial you are working on and ask your questions.
  • Guides (https://docs.coronalabs.com/guide/index.html) - Once you get your feet under you start poking at these.  There is a lot of stuff to learn and understand here.  These guides are invaluable.  I still use them to this day and I've been here since 2011.
PATH #2 Work on your own trying to break down concepts and then to create them with Corona.
 
As soon as you start to understand Corona and game design concepts a little bit, choose a single game and try to take it apart.  By this, I mean you should create a document (bullet lists are great) that breaks the game down into its core parts and mechanics.
 
Initially, this will be very hard and you will not have the vocabulary or concepts to properly understand what you are seeing and to then break that down into lists of mechanics and parts.
 
I did this for a few games when I was helping produce content for the Corona Geek show ( All of these documents are available on my Corona Geek gitHub repository: 
https://github.com/roaminggamer/CoronaGeek
 
Here are some specific examples:Once you have these 'lists' of mechanics you can take them one by one and try to make/reproduce just that part.  This is where all the fun comes from for me.  i.e. Breaking down a problem, reproducing it, and then finally improving upon it.
 
PATH #3 Lastly, you can't make games if you don't understand them.  To understand a game and the genre it belongs to you must:
  • Play many variations of the game.  So, if you're going to make a TD game, play 5 to 10 (or more) different TD games.
  • Read about them and study them.  Beyond playing the games you must research them.  You do this by searching the web and reading what other folks have written about them.  At the very least, see how many variations there are.  
Focus on Programming For Now
Some make disagree with me here, and I can understand that digging into art making is both fun and valuable, but for a very early learner I think that art is just a distraction.
 
So, I suggest that you make your games without art at first.  Just used geometric shapes and colors.  Then, when you have too many things going on for that to be useful and understandable any more, just get free art off the web.
 
For TD, one great free art source is Kenney's Top Down TD Pack:  It comes everything you need for a basic TD game.  
 
After that, searching the web for 'free tower defense art' will turn up lots of options.
 
 
 
Tower Defense Games
As noted above, I am suggesting TD for your first focus. 
 
These games vary in difficulty to create.  Some are far harder than a platformer to make while some are far easier.
 
The beautiful thing about these games is they all have common elements and if you choose correctly, you can find games to emulate that use just a few of the elements and or use them in the simplest of ways.  In other words you can find games that are easier to make, then try to make/clone/copy a more difficult one.  So your journey can be gradual.
 
I'm going to suggest a bunch of links now to various Tower Defense lists and specific games.  Then, I'll close with a suggestion on which one(s) to make/clone/copy first.
 List(s)Specific GamesAs you will have noticed, I put 1, 2, and 3 in front of a few of the games above.  This is because, these are my suggestions for TD games for you to start with for cloning.
 
1 - Plants Versus Zombies (PVZ)
This is actually a non-traditional TD game, but it has some important elements that are common to other TD games while it simplifies others.
 
My suggestion is, once you are ready to start duplicating mechanics.  Try making just these parts of PVZ
  • Plant/Zombie Grid/Lanes
    • Placement of tower in a lane/grid position.
    • Placement of zombie at end of lane
  • Pea Shooter
    • Drag-n-drop placement
    • Firing when a zombie is in your lane
    • Death
  • One Zombie
    • movement of zombie down lane
    • stopping and attacking
    • taking damage
    • doing damage
    • winning if end of lane reached
Once you can do all of this and only this you'll be ready for a more traditional TD game.
 
2. Geo Defense
Honestly I'm not sure you can even get this anymore, but there are plenty of videos of this so you should be able to understand the mechanics and gameplay.
 
This represents a basic path-following and free-tower placement type game.  If you loosen the Tower placement rules to simply not on a path and not on another tower this is pretty easy to replicate.
 
This adds these new mechanics:
  • path following
  • additional tower types
  • additional enemy speeds
  • alternate game over / death condition (n enemies reach end of path equals death)
  • tower upgrade and destruction 
  • ...
3. Kingdom Rush or Bloons TD 5.
This is a more modern TD game.  It has some new ideas, like multiple in-and-out paths, logic to go with path selection at junctures, the need to resolve some rendering order issues to maintain behind/in front.
 
Honestly, I hesitate to suggest this game at all.  In fact, it may be way too hard for the rendering issues alone.  Better might actually be Bloons TD (2,3,4,5, or 6)  - I suggest 5 because it is mature and easy to find and play.
 
 
 
PS - If you do decide to try learning about TD games, you can also find lots of code on gitHub:
 
Try this Google Search: github tower defense corona

Note: Do not start here. This is an upside down way to start learning. It is better to examine code after you learn fundamentals.

Edited by roaminggamer, 21 October 2018 - 10:11 AM.

  • Appletreeman likes this


[topic_controls]
[/topic_controls]