Principios para Hacer Un Videojuego
Principios para Hacer Un Videojuego
Principios para Hacer Un Videojuego
Learn about:
TheGameCreators CEO, Lee Bamber, introduces you to this e-book. With over 25 years of
game making experience he has some great nuggets of information to share with you to
help you on your way.
The first time I heard the above question was in my own ten-year-old head, coinciding with the arrival
of my first computer, and only Christmas present that year, the VIC-20. This hugely underpowered 8-
bit brick had just over 3Kb of programmable memory, but it had
several games and a book on how to code - naturally I was hooked
for life. Back then, of course, there was no game making tool, largely
due to the lack of memory available to store the editor and game at
the same time, so the early tools were graph paper, printouts to
debug code and boxes of tapes to store the efforts of my labours.
These days we don’t think twice about opening a paint package or tablet app and drawing a doodle,
but in the early years each pixel needed to be plotted to a piece of graph paper, and their respective
values totted up to produce the 8-bit integer value required to provide a single slice of the final
graphic. This was state of the art at the time, and represented the cumulative efforts of some amazing
pioneers in the development of the personal computer. Over the next three decades, games
technology evolved at an alarming rate, and for those hooked on the stuff, we were ruthlessly dragged
along for the ride, and what a ride!
My journey into the craft of professional games developer took a roundabout route, with my first six
years self-learning BASIC and Assembly language to create a mixture of games and tools, some
published, then onto college and university for five years where I continued developing games but
adding industrial proficiencies to my programming toolbox, then employment at a
developer/publisher for 5 years to gain practical real-world experience in
creating software for large scale publication and finally a chance opportunity
to work from home and work with LEGO on their very first Mindstorms
product, creating programmable robotic LEGO. This burst of freedom gave me
the confidence to start my own company with a view to selling my first game
maker called DarkBASIC, quickly joined by many fine fellows to give birth to
The 3D Gamemaker, DarkBASIC Pro, FPS Creator and a myriad of software,
apps and innovations that would ultimately give rise to our present collection of game making tools.
The good news is that you don’t have to spend the next three decades following in my footsteps, you
can have your first game up and running within a day. It’s easy to get overwhelmed by the choices
available, and if you want to create the next top-ten hit, you have reason to be nervous, and a lot to
learn. If instead, you want to focus on making a game solo or in a small team then you have come to
the right place.
If you have never made a game before, you can easily be discouraged by choosing the wrong tool for
the job, perhaps never to try again. By choosing a game maker based on whether you want to code
(AppGameKit), create and customise (GameGuru) or simply throw things together for fun (MyWorld),
the next step is to surround yourself with helpful people who can offer you advice and
encouragement. Fortunately, TheGameCreators are notorious for hosting friendly game-making
forums populated with enthusiastic and talented indie developers and hobbyists, and remains one of
the most valuable resources we can offer.
In this getting started guide you will learn a little bit more about our flagship products, which will help
you choose your starting point on your journey to becoming a game author. In addition to providing
the software to speed you along, and a safe environment for you to learn and grow, I’m also happy to
impart some words of wisdom that may be useful as you embark on your first game making projects:
• Save your progress early, save often and save under different filenames - you will be surprised
how many new users accidently wipe out their code or level design they’ve been working on
for three hours. This is one habit where paranoia is your friend.
• Advice is best obtained with a specific question - when dealing with a problem or attempting
to understand something, break it down into smaller parts until you have a close-ended
question. The answer will be a key that gets you moving again.
• Critique can be harsh, but respect it - when you are first starting out, expect most of your
games and early efforts to lack the polish of a published work. Use feedback to make your
games stronger, and know with time that your skill as a game author will grow.
Naturally, I could fill a treasure chest with the nuggets I’ve collected over the years, but the above
three should help you avoid frustration as you discover your own path towards the joy and fulfilment
of making your own games.
Lee Bamber
• Source Code
• Data
• Media
Once you understand that all games contain these three things in one form or another, you'll be well
on your way to understanding what it takes to make a game.
Coding Languages
There are a lot of coding languages, many are very similar, and all have varying learning curves. Some
are pretty simple, using common English expressions to make things happen, and have built in
commands to ease development, such as pre-programmed sprite commands and 3D object
manipulation, while others provide a very basic set of commands which involve a higher level of
development skill. Some like the languages supported by AppGameKit, provide a good mix of both,
i.e. Simple to use commands and a clear structure supported by very powerful pre-programmed
functions.
• BASIC - This language is called BASIC which means Beginner's All-Purpose Symbolic Instruction
Code), is an easy to learn English language based coding language and as the name suggests
is ideal for beginners. First developed in 1964, BASIC has evolved to become the ideal
development language for users who are starting to dip their toes into the world of game
making. Our own AppGameKit uses a version of BASIC which is very easy to pick up, and it
features many pre-programmed commands to help code games, such as 3D objects and
physics control, 2D sprite manipulation, shaders for visual effects and terrains for 3D
landscapes.
• C++ - This is a very powerful computer language, which while not originally created for game
development, has become the industry standard for programming professionals. It’s not as
easy to learn as BASIC but it has a lot of similarities. Our AppGameKit product can be combined
with the raw speed of C++ with some very powerful pre-programmed commands to access
virtually all of AppGameKit’s sprite, music, 3D and other commands, making for a flexible mix
of power and ease of use.
Scripts
Scripts are small code snippets, often interpreted by a larger application to make small changes to
that application or to control elements within that, some example of these are:
• Lua - This is an English language based scripting language. It is a very powerful tool and is used
by a large number of game making engines as a way of passing information back and forth
quickly and easily. It is very flexible and easy to learn, making it ideal for quick development
when working with an already established engine. Our own game maker GameGuru uses a
tailored version of Lua. It allows game makers to create their own code within their games.
Such routines can be how enemy AI works or it could manage a whole crafting system within
a game. Having this script system means that developers are not limited to what is provided,
they can script their own game logic.
• PHP - Is another scripting language, that while being multi-functional, is better suited to web
based applications and is very well suited for server scripts but it isn't really suitable for graphic
based applications. AppGameKit allows the use of PHP scripting within its code, while also
allowing coding in a number of other languages.
GUI based
A GUI (Graphical User Interface), is a specialised kind of scripting language controlled using a standard
interface found in most operating systems. Often allowing access to a set of pre-programmed
functions and commands accessed through a simple drag & drop interface, such languages are also
often called “macro”, when control is through simulated key presses or mouse clicks, as well as tapping
or pressing on a touch-activated screen. These systems can be very powerful and easy for a beginner
to grasp, but often lack full development control. Some engines offer a mix of GUI based functions,
combined with a scripting language, resulting in a tool that’s easy to use and has great flexibility. Our
product GameGuru is a good example of one that combined both of these options, while MyWorld,
another of our products, allows beginners to create great games using just a GUI interface.
As you can see, there are a lot of coding and development choices, and as you work with your own
projects, you'll discover an approach that suits your needs and skill level.
When you play games you most likely will want to save your progress at some point. This is typically
done by saving out data about your progress such as what level you are up to, the last check point you
reached, the score or other stats you have attained. The author of the game will decide what
information is needed to be saved and can then save it out in a format that can be read back into the
game when the player wants to pick up where they got to previously.
Models - By models, we mean 3D media. Again, 3D models come in many different formats, some
more flexible than others. Model formats often relate to the 3D modelling package used to create the
media, but almost all modelling software allows multiple formats to be exported.
A 3D model is best thought of as a kind of virtual sculpture, it has sides, angles, width, depth and
height and each model is made up of small shapes called polygons which link together to make the
whole model. Animated models have a skeleton, which can be thought of just like our own skeleton.
It is a series of bones linked together by joints. They can be moved around to create animations. This
might sound complicated, but as a game developer it isn't something you need to worry about at the
start, it's only when you delve deeper into the world of game making, that you'll want to learn how
you can manipulate these elements for some great effects.
.x .ac .blend
.3ds .b3d .m3
.md3 .dae .obj
.smd .3d .fbx
.md5 .lws .ago
.lwo .ms3d
So as you can see there are a lot of options, and a game developer will have their favourites for
different needs.
3D models are often associated with 2D media to 'colour' the model, when used like this the 2D image
is referred to as textures and the process to wrap them over the 3D model is called texture mapping.
Sound - Sound covers anything you can hear in a game. This includes effects, voice overs and the
multitude of pings, whizzes and zaps you'll hear as you play. As always, there are a number of file
formats, and once again, some are better suited to certain tasks than others.
Popular formats include: .WAV, .OGG, and .MP3. Other formats exist, but aren't well suited to game
development. As a rule .WAV are larger memory wise and of a higher quality. Format such as .MP3
and .OGG are smaller and slightly lower quality because they are compressed.
Videos - Videos are often used as a fast way of advancing a story or as a cut scene. Video can also be
used to create animated texturing for 3D models. There are a number of different video formats, .avi,
.mp4 and .wmv are just some. As with sounds, the choice of format really depends on many factors
and so it’s important to get a good understanding of the subject.
Shaders - These can be thought of as image related media, but are really a type of game code. Shader
code is often small by nature, although it can be very complicated, and its sole function is to 'shade' a
Shaders make use of the GPU (Graphic Processor Unit) of your computer, freeing up the main
processors (CPU) for less demanding tasks, thus improving performance). Most modern games make
full use of shaders and often rely on them for many game effects.
Having said that, the simple answer is, that it can be very easy indeed, and we'll look at some of
TheGameCreators tools available below and you'll see just how quickly a beginner can design and build
a game.
The important thing is that you start with something you can handle, using software suited to the task.
You're unlikely to make the next big blockbuster game overnight (although don't let us stop you trying)
and we recommend that you start small, learn about game design, what works for you, what's fun and
most importantly what works for your potential players. A good place to first delve into game making
would be with a simple drag and drop engine. We make a very friendly and easy to use sandbox game
maker called MyWorld. This is fun, easy to use and produces entertaining games quickly that you can
share with your friends online.
If you find that you're limited by the drag and drop approach and want to express your ideas further,
you could move onto something like GameGuru. While similar to MyWorld in its approach to level
design, where you simply choose a model to place and drag it into the editor to build your world,
GameGuru also supports the powerful .Lua scripting language, enabling you to expand your games
and knowledge as you learn to tweak the various elements that make up your games and even add
totally new features.
For those of you who want total coding control, you could choose AppGameKit, our custom-made
game development language. With AppGameKit, you have full control over every element of your
game since you'll be writing it all from the ground up. This is beyond doubt the most flexible and
powerful form of game development and offers true freedom over the direction of your project.
Learning to code can be a little daunting for a beginner.
AppGameKit has been designed to be easy to learn and at the same time remain powerful in the
results it produces. Once you know some coding commands and make some simple first step games
you will find it a very rewarding experience.
Regardless of where you start, what games you want to make, or your skill level, game making is an
amazing, challenging and most importantly fun experience, and we can help you dive deeper into this
world with our range of development tools supporting every developer, from beginner to professional.
Over the many years we’ve been making and selling game creation tools, we know we have helped
users start this as a hobby in their teenage years and then later in life end up working in the games
industry.
Art - We also recommend some kind of image manipulation software (art package). Although there
are a lot of high quality 2D media available, you'll always find you need to tweak some images, maybe
resize them, or something more advanced like re-colouring. There are many good, free and cheap
packages available and we suggest you take a look at the list we provide at the end of this article and
choose one that suits your needs. If art is not a skill you excel in then we’d recommend you look for
help from a friend who’s an artist or connect with someone online who’s willing to help.
3D Media - If you're starting out, you'll most likely want to just use 3D models that are included with
the game making application you've chosen, or you can buy in some assets if your budget extends to
this. In fact, purchasing per-made media is a good way to build a large library, and many professional
game companies will buy in stock media for their projects.
However, should model making appeal to you, there are again, a number of cheap or free applications
that you can check out, and you can refer to our references at the end for more information.
Sound - Sound is an important part of any game and it can make or break the whole project. Poor or
misplaced sound can ruin a game, or bring a mediocre game into the big leagues. There are many free
or cheap sounds available as well as some excellent free sound editing software packages available.
Once again, we'll list some available resources at the end of this article.
Game Editors - Depending on the type of engine or language you've chosen you might need an
Integrated Development Environment. (IDE), this could be as simple as a text editor (for example,
Notepad), a GUI editor, such as the one used to develop games using MyWorld and to some extent
GameGuru. It could be custom made to suit a language, such as the IDE that ships with AppGameKit,
or it could be more multi-purpose, such as Visual Studio, a tool developed by Microsoft for the
development of C++ applications.
In many cases you'll need several of these IDE's. For example, it's not uncommon for a developer to
use Notepad to create data and Visual Studio for coding.
Whatever route you choose, you'll need to find the right IDE for the job, and this will depend very
much on your chosen development path.
MyWorld is the most recent of our products, and is a sandbox game aimed at those who want to have
fun, but are also just starting to dip their toes into the world of game making. MyWorld truly requires
no programming knowledge at all, and you can quickly design your own 3D games, share with others
online, play the work of fellow developers or join teams of friends and others for some multiplayer
RPG fighting fun!
You start in the HubWorld and from here you can walk your avatar into a portal to start creating your
own new world:
From the easy to use frontend you can place mountains, trees, rocks, walls, buildings along with a
large range of props as well as add colour and lights to your map. You can very easily place enemies
and friendly quest giving folk, all through the simple menu system.
The map above only took four minutes to make, even we'll admit that it could do with some work, but
it shows just how easy it is to create great games very quickly. You only need to take a look at
MyWorld's Steam Workshop to see some very impressive quest and fighting based games.
Finally, you can quickly test your game with the click of the mouse. Here is poor hero being swamped
by some enemy Orcs the quest asked him to defeat!
All of this took less than ten minutes to create from start to finish, so if you're just starting out in game
making, or simply want a little fun, MyWorld could be just what you're looking for.
GameGuru is a true game maker in that it combines a strong mix of GUI control, drag & drop editing
and a very powerful Lua based scripting language. You can build interior and exterior based games,
spread over multiple levels, or as a single large world map. You can just use the editor to create basic
games using the huge media library of items or delve into the scripting language and create your own
custom effects and features. If the media provided with GameGuru isn't enough for you, you can
create your own, or purchase more from the dedicated online store selling many thousands of models,
scripts, sounds and music media.
When you first run GameGuru it opens with a GUI editor that lets you access the 3D objects and other
game making tools with drag & drop controls. You don't actually need to do any scripting at all, as we
provide hundreds of scripts, and pre-scripted objects. You can sculpt hills and valleys using a range of
easy to use tools, or lower the terrain to create small pools or large lakes.
Placing objects is just as easy as with MyWorld, and the core engine ships with 1000's of pre-made
models and characters covering many different genres, including modern day, sci-fi, horror and
fantasy. More than enough to get the budding developer started and of course, there is the Game
Creators Store, a third party store that sells good value and GameGuru compatible media from
hundreds of artists. If you're a modeller yourself, you can easily add your own media using the built-
in media importer.
You can also quickly create your own interior based games using the integrated Building Editor. This
powerful tool can be used on its own to build exciting interior based games or mix and match with the
exterior editor to rapidly create custom buildings for your exterior level.
Of course, as we mentioned, you're not just stuck to using the GUI, even though you can create a fully
functional game with just the drag & drop interface. You can tailor almost every element of the engine
using the built-in scripting language. GameGuru supports Lua, and this has been tied into almost every
feature of GameGuru allowing you to take control over pretty much everything to create your own
truly unique game. You don't need to start with something as in-depth as character AI, you can very
easily write scripts that control game lighting or play a sound from a trigger zone. The possibilities are
pretty much endless.
AppGameKit is arguably the most powerful of the game making tools in our product range. Purely
code based, this cross-platform language enables game developers to write code on a PC, Mac or Linux
device and then in a few clicks export the games to other systems (PC, Mac, Linux, Android, iOS &
HTML5).
AppGameKit's extremely powerful and rapidly expanding command set allows coders to quickly
develop 2D and 3D applications and games using either BASIC or C++. It even supports easy integration
of PHP scripting for rapid development of online game and apps.
The game above “Echoes+” was created with AppGameKit, you can download it for free HERE
While the power of AppGameKit lies in its flexibility, it also requires an understanding of coding. Don't
let this put you off however, as AppGameKit sports a very friendly IDE, a full help archive and hundreds
of code examples to get you going.
There are also many online tutorials focusing on coding with AppGameKit. We have seen total
beginners write their first lines of code within minutes of opening AppGameKit, and there's no reason
that you shouldn't have the same level of success.
Video tutorials can be viewed here to get you started with AppGameKit
All in all, AppGameKit is a very powerful language, and depending on your time and willingness to
stick with your developments, is the perfect choice for users who want full control over their code
and gaming features.
Why not download the trial version today and try it out?
• MyWorld Steam Community - a place to discuss MyWorld and interact with the development
team
• GameGuru Steam Community – Where Steam users can discuss GameGuru
• GameGuru forums – Ask for help with GameGuru, talk about scripts, and showcase your
games
• AppGameKit Steam Community – A place for Steam users to ask questions about AppGameKit
• TheGameCreators forums – These forums have been running since the early 2000s. You will
find help on AppGameKit and many other topics on these forums. Just sign up to
TheGameCreators to gain access. The friendly forums are full of experienced users who are
often willing to help beginners and more advanced users
TheGameCreators Resources
• Game Creator Store - A third party media store specialising in supporting indie developers.
The store offers GameGuru and AppGameKit compatible media as well as supporting a wider
range of engines. The store also offers a portal for budding developers to publish their own
games and apps
• GameGuru DLC - Check out the GameGuru store page for some excellent 3D media packs
• AppGameKit DLC - Visit the AppGameKit Steam store page for some great value 2D, 3D and
sound media
• AppGameKit Online Documentation – every command is detailed in this comprehensive site.
• AppGameKit Video Tutorials – watch and learn how to code in AppGameKit
Useful Tools
• GIMP - GIMP stands for GNU Image Manipulation Program. It is a free, image editor and is a
great choice for budding artists. The app is cross platform, so if you develop for Windows or
MacOS you will find this a powerful tool
• Paint.net - This is another excellent free image and digital photo editor. It has some different
features to GIMP and many developers have both these packages in their development tools
library
• Audacity - A free, open source, cross platform music and sound editor that has become one
of the indie developers favourite. Edit sounds and music, convert formats and add a huge
range of effects using the very simple interface