Creating Game

Blitz3D Forums/Blitz3D Beginners Area/Creating Game

Jklinestiver(Posted 2013) [#1]
I was going to try and mod a game that I have been playing for years but decided what the heck why not make one of my own. So I have started to read the tutorials and am learning a lot. I plan to create a game that is pretty huge. My only question is what are the limits of blitz3d when It comes to how much space I have to use? Or is that something that I will eventually have to decide on my own? It will take many hours and years but being a stay at home father I have the time. I only hope that I will be able to create my vision w/ blitz3d. Any help would be appreciated.


Yasha(Posted 2013) [#2]
Depends what you mean by "space"...

There are a few limits imposed by the nature of the system B3D uses, but as a beginner, you're unlikely to run up against them any time soon so I wouldn't worry about that too much (as an example, it can't create graphics windows with resolutions above 2048x1536, but that still counts as a very adequate resolution for most gamers today).

The biggest thing is probably that both the language and the graphics system provided by B3D are quite antiquated and no longer reflect the "style" used in modern software, so what you learn here - while still valuable, learning anything is better than nothing - will be a few years behind the state of the art (they still work very well, they've just been superseded by greater things). If you only intend to use it as a tool in its own right then that's not a problem, of course.

B3D was originally designed without the thought of limits at all; any that exist are just because modern gaming hardware is so ludicrously powerful that it reaches heights that were beyond imagining when it was originally developed (e.g. B3D can only produce 32-bit applications; in 2000, the idea that you might even have 2 GB of RAM, let alone use it all up on one game, was ridiculous).


And yes, I would say creating is better than modding for a total beginner: as you've seen, to mod a game, you need to be able to read and understand the existing code so you know what changes to make, and what the consequences of those changes will be (and reading someone else's code can be pretty hard, depending on how different their writing style is). At the moment you should probably focus on completely understanding code that you designed yourself, where you have the major advantage of knowing the intentions behind everything that was written. Your original question was a tough one because the Wrestling Mpire games are huuuuuge codebases that most people here haven't read through (certainly I haven't) and therefore will be reluctant to recommend changes for.


Jklinestiver(Posted 2013) [#3]
Thank you for your words of wisdom, I am on a mission to make a game that allows for more than Wrestling Mpire. Hopefully after I am done studying I will understand coding and more so I can set up a network for people to play each other on but for right now I am just focusing on getting my code set up and running. My plans are for myself to make my game more HD compatible than that of Wrestling Mpire and too allow for more customization of characters. I am not going to implement the whole 9 federation system but do on planning on having a wide variety of belts and other prizes. Going to try and somehow expand my game to allow for 1500 wrestlers plus their gear moves(which I want to create a interface in game that has bits and pieces of motions that you can put together to make a complete finisher). If this is something that I will not be able to do with Blitz3d please let me know so I can find the program that I need. This is not going to be a small project but I am going to see it through.


Yasha(Posted 2013) [#4]
Things like the number of wrestlers and moves, or the structure of ingame competitions, should be pretty much the same from engine to engine; there's certainly nothing in B3D that will hinder things like that. It's a very "high-level" concept, far removed from the details that a game engine provides, and that sort of thing will reside in your own code (after all, B3D cares not whether you write wrestling games, racing games, FPSs, ...or even text editors).

I doubt you'll run into any "hard" limits with your project, so B3D will be a good enough tool for prototyping and getting your feet wet with writing code; once you've done that you'll have the skills to make an informed decision as to whether to finish the project using it as well.


Kryzon(Posted 2013) [#5]
One of the best advices people gave me when I was starting: never start with your dream project.

Rather build your experience with small, challenging projects that can be finished.
You need realistic expectations.


_PJ_(Posted 2013) [#6]
I plan to create a game that is pretty huge

Bad idea. Really, and I'm sure there's plenty of folks on these forums that can agree by experience that the result will be:
1) You get a game to working standard, but it's poorly done, buggy and nowhere near how you expected
2) You run into so many problems trying to get various aspects working and almost none of them do, leading to frustration and resentment
3) If things do go well, you end up needing to spend more and more time and possibly money (purchasing licenses for and/or media such as music/models and so on) - for this you really need a lot of commitment

---


One of the best advice people told me when I was starting: never start with your dream project.

Rather build your experience with small, challenging projects that can be finished.
You need realistic expectations.


Absoultely true.
Even though it sounds dull, and unremarkable, programming a simple Pong game or similar is a VERY good way to learn hwo the language works and as such a simple game has such simple 'rules', it isn't too complex to make changes and locate the causes for bugs - because you will get bugs.


Jklinestiver(Posted 2013) [#7]
ok, I get it start small but how do I do that when my plan was too create a wrestling game and that was it? I had no inspiration to do anything else. What kind of game should I start with? I do appreciate all the input and will do as you guys are saying because I know that you have been there before.

But where do I find a idea for my first game? I have always been into wrestling games. I did try a game my brother had once, I believe it was called End Fantasy or something like that. It was on the NES. It was alright, maybe that is where I should start or so I think smaller?


Yasha(Posted 2013) [#8]
Well you could start by creating a wrestling game that has no tournament, no named characters, no teams, no story, no sound, no menu screens etc. - just combat. Once you have the mechanics of the actual gameplay sorted you could worry about things like interesting scenery instead of a cubic platform.

As for gameplay, don't start with hundred-button combos and ragdolls performing advanced martial arts: start with three cubes stacked above one another that can throw straight punches. Once you have a system that can register hits and define a winner, move up to humanoid models... etc.

At the very least, at the moment you need to see the project as a series of prototype games that will lead to better prototype games later on. As you complete the small projects, you'll probably have more and better ideas for the following ones, as well as a realistic estimation of what you can complete. You'll also have complete and playable (if dull) projects early on, rather than slogging away at an unclimbable mountain project for years with no tangible result.

I would advise you not to worry about the end result at the moment. Get your feet wet first, and decide what to do with your skills once you have a solid idea of what you can do.


RemiD(Posted 2013) [#9]

ok, I get it start small but how do I do that when my plan was too create a wrestling game and that was it? I had no inspiration to do anything else.


I suggest to keep working on a project which motivates you. So the wrestling game is, i think, ok.

But, instead of trying to make a complex video game with many functionalities and components, i suggest a similar approach as what Yasha suggested, that is to create several simple programs which will be used later to make the complex video game.

You see, a program or a video game can be divided in several systems (input, logic, collisions, occlusion, animations, particles, lighting, render3d, render2d, HUD, GUI, sounds, others), each system can be divided in several functions/routines, each function/routine can be divided in several conditions and rules/instructions.

I suggest to follow some tutorials in order to learn about the Blitz3d syntax.
You can find some tutorials on youtube, or by reading some forums posts, and the code examples in the code archives on this website.

Then put your idea with words and sentences on paper, define the functionalities and the components of a simple game.
Then define the systems required in this simple game.
Then define the functions/routines in each system.
Then define the conditions, the rules/instructions in each function.

Then try to convert these words and sentences in Blitz3d code.

You will see errors more than once, but fortunately, there are debug commands to help you to see how the program behaves and find the source of the errors in your code.

Try, track, tweak, improve, and if you are motivated enough, you will make progress.

The hardest parts for me were to learn the syntax and to know how to organize my code, the rest is just motivation, concentration, action.

Good luck,


Ginger Tea(Posted 2013) [#10]
Jumping headlong into an ambitious project for your first foray into programming is never a good idea.
Small simple stand alone projects like cubes hitting each other to test detection is alot easier to do than try and tweak that small part of a larger source code.

I have said countless times (as have others) over the years that it's sometimes best to start off with a retro game that is simple or a small part of a larger game and work from there, for example
Pong became breakout and breakout inspired space invaders and akranoid.

2D platformers teach you about arrays via level editors and design.

Write in english (or your native language) what you want to do as RemiD has advised and if you find a problem in code, translate the logic of it back into english incase you accidentally have a gaff like one I saw ages ago.

if "Dave" equals "Dave" do this
if that didn't match,
if "Dave" equals "Dave" do this instead


Now as the coder was checking to see if "Dave" equaled "Dave" in both cases the first would be done, but as he was checking Dave against itself it's rather headscratching as to what was meant to be achieved.
Now I used "Dave" as a place holder as that's how I tried to point it out after another posters efforts seemed to be ignored/missed, he was not checking to see if "name" equals Dave then to check if it equals Mary if not.
But doing this atleast points out that there is something really wrong with what was written.


Jklinestiver(Posted 2013) [#11]
So Ginger Tea what kind of game should I start with? I am 36 and not getting any younger and time is of the essence.


RemiD(Posted 2013) [#12]
I always considered that WWF was fake fighting but i didn't know some have done crazy drops like these ones : http://www.youtube.com/watch?v=ql_k1EgYHY8

Ouch !

Maybe for your first project you could try to create a simple arena and have 2 characters fighting, one controlled by the user, the other by the ai.


Jklinestiver(Posted 2013) [#13]
great idea, thanks.


Ginger Tea(Posted 2013) [#14]
Although a game in the mold of MDickies Mpire is your goal other games act as building blocks along the way.
No one on the day they were born goes "Today is the day I run a marathon.", I know the phrase is "walk before you run." but with programming the game is the marathon but other games have elements that alow you to build up the courage to stand on your own two feet and stumble forwards back to a crawl, but your body and mind realise that that is going towards your goal.

What game should you start with?
Hmm, tbh I am tempted to say "Don't do a game" and leave it at that, not to mean "give up you is old" I am only 2 years older than you and due to work taking up too much of my time, I lost out on 9 years of hobby coding and might one day go back to square one.

What I mean is, don't do a game, do game mechanics that are found in games, you don't have to remake supermario world level for level, just a single non scrolling screen with enough level variance to alow you to test that water drowns mario, that he can walk infront of walls or jump ontop of them (did mario games do that?).
Granted a 2D sidecrolling platform game is not really heading towards an Mpire type game, but in the days of 2D being the only option many games were based off the same core mechanics.

But the more you know about game mechanics and coding them, the easier it is for you to look at a more complex game and break it down into workable bite sized chunks.


Jklinestiver(Posted 2013) [#15]
Ginger Tea i have no job and take care of house. I have more time than men my age have but i am not simple (if you know what i mean.) I have natural talents that allowed me to know how to build a working computer without any college education and that got old and always wanted a pc computer wrestling game and saw MDickie and what he did and got inspiried. If i get desperate enough i will offer 50% of profits from the game to the programer that writes the program that i use. This is not just something that i want to do but something that i must do.


_PJ_(Posted 2013) [#16]
I think I understand something of what's wanted here.

Nobody is suggesting you're simple, Jkinestiver - only that we all know what it's like to have a great idea for a game at first and then discover that regardless of time and intelligence, programming games is a monstrous task for one person.

The majority of games, even the old sSNES ones, were created by many people employing various talents - Artists, Audio engineers, 3d-modellers, texture artists and so on - so to create a game on ones own will require something of each such talent AS WELL as the programming.

Then, even with a program written, considerations need to be made with regards to optimisation (i.e processing speed and memory usage) adding features, balancing difficulty, fixing bugs (as I Mentioned before, there WILL be bugs!)
It's no simple task, even for the most expert of game programmers - if it were, everybody would be doing it ;)

BUT That doesn't mean it's not possible, and whilst we've already all stated it's very ambitious - if it truly is your goal to create a wrestling game, then there are ways to start small AND work on a wrestling game:

1) As RemiD and Ginger Tea suggest, plan out your game idea on paper first - this is ALWAYS a great starting point
2) Add details to the plan until you are confident that every aspect has been considered in the plan
3) Once you have a good, detailed plan, it's time to hit the keyboard... Take a small fragment of the plan, one particular portion or concept, and make the code to deal with it.
This may be code that, say, deals with selecting a character - you may not have the character information programmed yet, but you don't need it for now - you just need to create some code that will take the player input and return a value to represent different characters:

For example:
This code assumes there may be images of the characters spaced 128 pixels apart horizontally on the screen at the top. By clicking the Mouse Left Button on an image, a number will be returned which can represent the character
[code]
Const WRESTLER_JIM=0
Const WRESTLER_FRED=1
Const WRESTLER_ALBERT=2
;... etc

Global PLAYER

If (MouseHit(1) And (MouseY()<128))
PLAYER=GetCharacter( MouseX() )
End If
Function GetCharacter(X)
Return Int(X / 128)
End Function
[code]

4) Once you have your code snippet for that one detail working as intended, you can move on to the next - with the added benefit that now you have some basis to work from (i.e. in our example, we now have the values for the characters!)
5) As you progress, you will get stuck, realise things that could be done differently, realise you've made mistakes or find things that just don't seem to work right... but you will be learning all the while!

Hope this helps some, if it's any consolation, I am the same age as you!