0

Update on Game Development Fundamentals with Amazon Lumberyard

Posted by Dr. Burton on April 28, 2017 in Amazon Lumberyard, Education, Game Development, Lua, Lumberyard |

Game Development Fundamentals with Amazon Lumberyard will available soon!

Early this year we provided an early release copy of the textbook to a small group of students.  We received some very valuable feedback on how to make the textbook even better, especially in how we approach teaching Blender.

As we were completing the changes, Dr. Burton had the opportunity to visit with several Lumberyard Engineers at GDC.  After spending time with them, discussing the next version of Lumberyard, and getting to see the next beta release, we decided that the changes between 1.8 and 1.9 were significant enough that we should delay our release until 1.9 was available.

Amazon Lumberyard 1.9 is now available and we are working hard to update the entire book to be compatible with this important release.
While Lumberyard continues make significant improvements with every release (usually 6 to 8 weeks between each update), we believe that the core functionality of Lumberyard is now at a place where we can release our textbooks and it not be outdated in 6 weeks.

A few notes:
We WILL continue to update the Lumberyard textbooks FOR FREE to our customers.  We generally release an update 2 to 4 times per year depending on how dramatic the changes.  By purchasing the textbooks through our website, you will receive first notice to all updates.  All textbooks will also be available through Amazon and Apple bookstores.  We will release the updates to customers who purchase through those stores, but we have no control over how quickly the new material will be available to their customers.

Faculty who are interested in using our textbooks for a class or would like a review copy, please contact sales@burtonsmediagroup.com and we will be happy to assist you!

We currently have at six textbooks planned in the Lumberyard series, each covering a different style of game with a different target age group or experience level.

Textbooks In Development:
Building a Casual Game: Plinko
Making a Maze Runner
Racing Game
Multiplayer Combat
Multiplayer Worlds

 

Tags: , , , , , , ,

0

Why switch to Amazon Lumberyard?

Posted by Dr. Burton on April 28, 2017 in Cloud Computing, Game Development, Lumberyard, Mobile |

 

Recently I was asked why I had selected Amazon Lumberyard over Unity, Unreal or other 3D game engines.

 

There are several reasons I chose to go with Lumberyard.

Cost:
Unity:
I had been using/teaching Unity for years (I was one of the recipients of the Unity Education Grant in 2010).  It is fairly easy to use and teach.  However, it was expensive to use in the classroom (I realize that this isn’t an issue now that Unity is free for education).  However, if one of my students (or I) am successful in making a popular game, there is a cost going forward.  I’m okay with paying a little bit and supporting the makers of the engine that I use, so this was not a big issue but was still a consideration.
Unreal:
Yes, Unreal has been/is free for education.  However, their royalty structure for a semi-successful game is a little frustrating and expensive.  Again, I do not have a problem paying a little if my game is successful, but I generally avoid royalty structures (unless I’m the recipient :-).
Lumberyard:
Lumberyard is completely free.  They make their money off of web services, which you have to pay for with any game engine.  I was already using AWS, so when AWS was built into Lumberyard, this was an easy decision.  I know, AWS plugins are now available for other engines as well, so this wasn’t the tipping point but it did contribute.  Amazon has deeper pockets than other game engine makers.  Amazon is making and publishing their own games with Lumberyard.  Of course, if your game doesn’t use web services (i.e., it’s single player) it’s completely free.
Responsiveness/Support:
Note:
  I expect a certain level of professionalism.  I run a game design degree that is ranked in the top 20% internationally.  I realize that I’m not at a big name university, but a cordial, polite response to my questions is expected no mater how big the organization.
Unity:  As I said, I used Unity for over 7 years.  The responsiveness of the company to my questions and attempts at interaction was.. let’s just leave it at disappointing.   The only time I would get a response was on selling more licenses.
Unreal:  I never received more than a form letter response from Unreal.
Lumberyard: This was the big difference.  One of the big influences to shift to Lumberyard was how I was treated by the people at Amazon Lumberyard compared to other game engine companies.  Amazon has built its reputation on being customer-centric.  This philosophy was immediately apparent the first time I reached out to the support staff.
Soon after that initial email, I was speaking with engineers, developers, and even the head of one of the divisions at Amazon.  Amazon even sent one of their people to spend the day at the University I teach to give a series of tech talks and game dev talks to my students.  When compared to how other companies treat education, this was the deciding factor.  I love Amazon’s customer-centric focus.

Access to Engine code

For most indie developers this isn’t a big factor.  But if you have a HUGE project that you plan to span the next 20 years of your life (yes, I have project that I am working on that meets this criteria) then the availability of the engine code could be critical.  What if the company goes out of business?  What if they go left when you need to go right?  While I do not have any interest in being in the ‘making game engines’ business, it could be an issue long term.

Unity:  Can be purchased.
Unreal: Available for download with a very friendly EULA.
Lumberyard:  Open-Source-ish.
Scripting:
Unity: Scripting in Unity can be done with C# (as I understand it, javascript is being depreciated?).  There are a few other languages as well, but C# is the one that most people use.Unreal: Default scripting is C++.  While this is great if your students are computer science majors, it’s a problem if you’re focused on game design.

Lumberyard: Default scripting is Lua.  Yep, Lua, the same language that we use for mobile game development with Corona SDK.  Learning Curve: 0

All three engines also include a visual scripting tool to simplify it even more for the non-programmers.
Networking/Cloud:
Unity:  This has been a weakness of Unity for years.  While it has become significantly easier in the latest version, if I were to stay with Unity, I would still use the AWS Cloud plugin.
Unreal:  This was the Unreal engines strength.  They got networking right early on.  You still need the background servers to host the game.
Lumberyard: Lumberyard includes Gems that make creating multiplayer/Internet games easy to integrate.  In the latest version, it is advertised that one engineer can have the entire backend up and running in 30 minutes.  Less experienced developers might take a little longer.
Learning & Resources:
Unity:  This is where Unity shines. They have created some really great resources for helping people to learn Unity.  Part of that was the early investment in education (the Unity Education Grant). The learning curve on Unity is about as easy as you can get with 3D game creation.  Add in the Asset store, and Unity has done a great job that all engines should aspire.
Unreal:  Unreal’s learning curve is pretty steep. The asset store now exists but isn’t as developed as Unity.  Learning resources exist but again, not as developed as Unity.
Lumberyard: This is where Lumberyard has to play catch-up (and one of the reasons I’m writing a textbook).  There are plans for asset stores (come on, it’s Amazon.. there will be asset stores) and the basic documentation is there, but the easy to follow for people new to 3D game dev is lacking.
Be sure to check out our new books on learning Amazon Lumberyard to make this a little less painful!
Virtual Reality:

This area is a toss up between the big three engines.  Each implements VR slightly differently, but all have made it easy to do.

Supported Platforms:
Unity: Is there a platform that Unity can’t publish to?  This is an area of strength for Unity 3D.  Publishing is easy and straight forward.
Unreal: Like Unity, Unreal can publish to just about everything.
Lumberyard is only short on being able to publish to HTML5.  As long as you aren’t targeting a browser, this shouldn’t be an issue.
Going forward:

For the University game development program and my personal use, we are going 100% in on Lumberyard.   The engine is better (IMHO) for game dev, the cost is perfect, and the company is large enough that I don’t have to worry about if it exists in the future.  With the added bonus that I get the engine source code so that I can continue to tweak it if they do decide to stop development, I have a path forward.

Hope that helps!  Please, let me know if you have any other questions or thoughts on the matter!
Dr. Brian Burton

Tags: , , , ,

0

Learning Lua Scripting- Part 5 – Math and Math Library

Posted by Dr. Burton on March 15, 2017 in Amazon Lumberyard, Corona, Lua, Lumberyard, Tutorials |

In this Learning Lua Scripting tutorial we will examine how to use the Lua Math Library.

Lua has the basic math operations that you would expect to find in a modern scripting language.
^ – exponential
* – multiplication
/ – division
% – modulus or modulo
+ – addition
– – subtraction or unary

As of version 5.3 of Lua, numbers are stored internally as either integers or double (64 bit) by default.
Prior to 5.3, all numbers were stored as doubles.

Lua follows the standard order of precedence for operations: ^, not, #, unary, *, /, %, +, –

Library:
The math library can be accessed with the math keyword without special loading:

local myPi = math.pi
print ( myPi )
									


Results in 3.1415926535…

The math library has all the functions that you would expect including sin, cos, random, randomseed, etc.

If you wish to generate a random number, be sure to randomize the number generator:

math.randomseed( os.time( ) )
myNumber = math.random( 1, 10 )
print ( myNumber )
									

Resources

If you would like print resources, there are several books on Lua available.

Programming in Lua by Roberto Ierusalimschy, one of the lead architects of Lua.  Great technical intro to the language

Lua 5.2 Reference Manual also by Roberto Ierusalimschy, is, as the name implies, a less expensive reference manual.  Useful for the experienced coder who just needs to look up some of the details of the language.

Lua Programming Gems by L. de Figueiredo, W. Celes, and R. Ierusalimschy is an older (2008) collection of code snippets that can be useful.


Editor –

We used the Zerobrane editor in all of our video demonstrations.

Our books:
We have several books on Corona and Amazon Lumberyard (both of which use Lua as their scripting language):
Learning Mobile Application & Game Development with Corona – Learn to program in Lua and how to make mobile apps! eTextbook for those who are new to programming.

Beginning Mobile App Development with Corona – Introduces mobile application development for those who already know how to program.

Game Design Fundamentals with Amazon Lumberyard – For those who are new 3D Game development, this eTextbook introduces how to make a game using Blender, GIMP, and Amazon Lumberyard.

The idea of writing a textbook on the Lua Scripting language has been floated to me.  While I greatly value Dr. Ierusalimschy, our styles of instruction are very different.  Leave me a comment if you would like to see a Lua Scripting textbook.

 

Next Lesson: Part 6 – Functions

Tags: ,

0

Learning Lua Scripting- Part 4: Working with Strings

Posted by Dr. Burton on March 14, 2017 in Amazon Lumberyard, Corona, Lua, Tutorials |

In this tutorial, part 4 of our series on learning Lua scripting, we will look at some of the tools available for working with Strings in Lua.

Tutorial:

Concatenation in an important concept in all programming languages.  In Lua, concatenation is accomplished by using two periods in a series or ..

local myString = "Hello"
print (#myString)  -- the # (hashtag or pound sign) returns the number of elements in a table or string. i.e. how many characters are in the string

local myOtherString = " World"
print (myString .. myOtherString)
									

There are many escape sequences available in Lua including newline:

local myNewLine = "This is a string ntwith a "newline""
print (myNewLine)
									

The example adds a new line (\n), a tab at the beginning of the newline (\t), and quotes around the word “newline”.  One caveat to using escape sequences; they do not require any spaces around them.

One last tip for creating strings in Lua.  If you want to create a multi-line string, you can use [[ ]] to encapsulate the string.

local myThirdString = [[ Multi-line
string
that 
contains 
newline ]]
print (myThirdString)
									

 

Resources

If you would like print resources, there are several books on Lua available.

Programming in Lua by Roberto Ierusalimschy, one of the lead architects of Lua.  Great technical intro to the language.



Lua 5.2 Reference Manual
also by Roberto Ierusalimschy, is, as the name implies, a less expensive reference manual.  Useful for the experienced coder who just needs to look up some of the details of
the language.

Lua Programming Gems by L. de Figueiredo, W. Celes, and R. Ierusalimschy is an older (2008) collection of code snippets that can be useful.


Editor –

We used the Zerobrane editor in all of our video demonstrations.

Our books:
We have several books on Corona and Amazon Lumberyard (both of which use Lua as their scripting language):
Learning Mobile Application & Game Development with Corona – Learn to program in Lua and how to make mobile apps! eTextbook for those who are new to programming.

Beginning Mobile App Development with Corona – Introduces mobile application development for those who already know how to program.

Game Design Fundamentals with Amazon Lumberyard – For those who are new 3D Game development, this eTextbook introduces how to make a game using Blender, GIMP, and Amazon Lumberyard.

The idea of writing a textbook on the Lua Scripting language has been floated to me.  While I greatly value Dr. Ierusalimschy, our styles of instruction are very different.  Leave me a comment if you would like to see a Lua Scripting textbook.

 

Next Lesson: Part 5 – Math and Math Library

Tags: , ,

0

Learning Lua Scripting – Part 3: Variables

Posted by Dr. Burton on March 14, 2017 in Amazon Lumberyard, Corona, Lua, Lumberyard, Tutorials |

Part 3 of our tutorial series on the Lua scripting language.  In this tutorial we explore the variable system in Lua.

Lua uses an untyped variable declaration system.  That means that you do not need to decide on what type a variable is, just declare it with the keyword local.

Lua variables can store nil, number (floating point), strings, boolean, tables, functions, userdata, and threads.

By default, any new variable has the value of nil until given a value.

That doesn’t mean that Lua doesn’t type its variables! It does.  If you use the command type, you can see what variable type is being used in the storage:

local myVariable = 10
print ( type( myVariable ) )
									

The print command in this code example will result in “number” being displayed in the console.  All numbers are stored as double precision floating point variables.

Boolean can be a little tricky for evaluation.  If the variable has no value (or nil), it will evaluate (ie. when using if..then or while structures) to FALSE.

We will explore tables in depth later, but for now, you should know that tables are declared with the curly brackets {}:

local myTable = {"a string", 12, 42, false}
print myTable[1]
									

To work with the contents of a table, you can reference the object based upon the index.  Note that table indexes start counting at 1, not 0!
Thus the above code example would output the first object in the table: “a string”

 

Resources

If you would like print resources, there are several books on Lua available.

Programming in Lua by Roberto Ierusalimschy, one of the lead architects of Lua.  Great technical intro to the language.



Lua 5.2 Reference Manual
also by Roberto Ierusalimschy, is, as the name implies, a less expensive reference manual.  Useful for the experienced coder who just needs to look up some of the details of
the language.

Lua Programming Gems by L. de Figueiredo, W. Celes, and R. Ierusalimschy is an older (2008) collection of code snippets that can be useful.


Editor –

We used the Zerobrane editor in all of our video demonstrations.

Our books:
We have several books on Corona and Amazon Lumberyard (both of which use Lua as their scripting language):
Learning Mobile Application & Game Development with Corona – Learn to program in Lua and how to make mobile apps! eTextbook for those who are new to programming.

Beginning Mobile App Development with Corona – Introduces mobile application development for those who already know how to program.

Game Design Fundamentals with Amazon Lumberyard – For those who are new 3D Game development, this eTextbook introduces how to make a game using Blender, GIMP, and Amazon Lumberyard.

The idea of writing a textbook on the Lua Scripting language has been floated to me.  While I greatly value Dr. Ierusalimschy, our styles of instruction are very different.  Leave me a comment if you would like to see a Lua Scripting textbook.

 

Next Lesson: Part 4 – Working with Strings

Tags: , , , ,

Copyright © 2010-2018 Burtons Media Group All rights reserved.
This site is using the Desk Mess Mirrored theme, v2.5, from BuyNowShop.com.