Liquid Space Created 7 years ago2017-09-15 13:41:42 UTC by Screamernail Screamernail

Created 7 years ago2017-09-15 13:41:42 UTC by Screamernail Screamernail

Posted 7 years ago2017-09-15 13:41:42 UTC Post #337412
If you wondered what my aim was and why i decided to stay on this site. It's because of my on-work game "Liquid Space". It's inspired by Bungie's Marathon games and nowadays a-bit of System Shock 2. Here i will reveal some things about the game and where i'll share my plans with you all. I can't guarantee completely everything because it's not even halfway finished but i will say what it is and what i plan to do. (Don't merge or remove this thread please)

1: What is it?
A First-Person-Shooter. A classic one about that. I've planed to create my own game engine from scratch named "Tau Ceti" that is a simple and modable engine simple as that.

2: What's the scenario of it?
Space Scandinavians! I'm Swedish so i have to put it like this because i know it. I'm planning on being more unique rather than steal from Marathon and System Shock so you can be excited for something new from me. And i will not reveal the story, just yet.

3: What's your plans?
It's pretty stupid but i must say that i will get some helpers and build and program a game platform for my custom games! It won't be a too complex platform, it will be a text based computer like DOS. It's insane, but then i have something to do rather than listen to music all the time and getting ideas that will never happen.

4: Something more?
I might not be a genius. But i can do this anyway.

That's it by far. I now need to work on it a-bit to make sure i get something done.
Screamernail ScreamernailYour personal Fear
Posted 7 years ago2017-09-15 17:28:02 UTC Post #337413
I'll stick to Unity for awhile. I can't seem to know where to start the engine from.
Screamernail ScreamernailYour personal Fear
Posted 7 years ago2017-09-15 19:09:02 UTC Post #337415
Assembling your own game engine is not easy, and writing everything from scratch is even harder. That's why most people choose engines that are already up and running - writing something from scratch would really take a lot of time just to get something that may become obsolete with an update on already developed engine. And if the goal is making a game, then it'd take much less time to develop on an engine you already have.

If you want to write an engine from scratch, then you'll have a great deal of work that requires really good understanding of coding, libraries and APIs you're going to use.

If you want to assemble an engine from ready elements, you can check some free engines based on them. Things like OGRE renderer, OpenAL, and SDL provide you with graphics, sound and io. Newton Game Dynamics, ODE or Bullet would give you physics. Then you'll have to check libraries/APIs for other stuff like networking, but assembling a game engine from those would still take a lot of time.

It's generally a better idea to use an already developed engine, except if you want to make your own for educational purposes or something.
Posted 7 years ago2017-09-17 10:10:21 UTC Post #337420
I would love to know how to make a game engine from scratch. But the Tau Ceti engine got to wait until i know better. I'll use OpenGL, because i have it.

Should i know something more?
Screamernail ScreamernailYour personal Fear
Posted 7 years ago2017-09-17 11:31:44 UTC Post #337422
Based on what you're saying about OpenGL (everybody has it, because it's an API, not a thing to download separately), you are way out of your league.

A lot of people think they can make an entire engine from scratch and wind up failing miserably. You'll need years of experience before you can even think about doing that.

Start with the basics, make sure you have a good grasp of that first. You'll feel a lot better doing small stuff and succeeding at it than trying and failing to make an engine.

Trust me, you'll be pulling your hair out due to frustration if you try to make an engine now.
Posted 7 years ago2017-09-17 11:52:42 UTC Post #337423
Okay. I'll quit with my work on it.

Because i'm not someone who likes frustrating things. All i want is to have fun making what i want to make. If it's not fun making an engine then i'll stop.
Screamernail ScreamernailYour personal Fear
Posted 7 years ago2017-09-17 12:33:03 UTC Post #337424
Jesus christ, make up your mind. You want to make stuff, but aren't willing to put any effort into learning how to do it properly? No-one got good at anything without practice. If you're not willing to practice, or at least approach it in a manner feasible for your skill level, then just shut up about it, because nothing will ever come of it.

Don't get me wrong, I think you should do it. But if you're that eager to give up — the moment someone says the process might be a bit harder than you want it to be — then you clearly don't care about it as much as you claim to.
Jessie JessieTrans Rights <3
Posted 7 years ago2017-09-17 16:10:50 UTC Post #337425
Okay, practice. I'll start practicing and then work with something small.

If i get a mentor then it will go easier but i do presume no one here want to help me that way.

Whatever i'll do some basics.
Screamernail ScreamernailYour personal Fear
Posted 7 years ago2017-09-17 17:42:56 UTC Post #337427
Example of what you get by practising for a few years:

Early 2015:
User posted image
User posted image
(don't bother translating, it would make you cringe)

2017:
User posted image
User posted image
User posted image
This is an example in mapping, of course. Programming/coding may or may not take longer than that.
Now imagine what would happen to you, after a few years of practice. :P
Admer456 Admer456If it ain't broken, don't fox it!
Posted 7 years ago2017-09-17 17:55:29 UTC Post #337429
Yes
Screamernail ScreamernailYour personal Fear
Posted 7 years ago2017-09-17 19:05:41 UTC Post #337430
See candles in these ones (it may be hard to spot them on those dark screenshots):
User posted image
User posted image
These were one of my first models I made for Half-Life. Back then I thought that I won't be able to ever get more complex models and I'm only good at modelling simple props.

Now, some of my recent models:
User posted image
User posted image
User posted image
User posted image
User posted image
Without learning and practice I wouldn't be able to do any of those.
Posted 7 years ago2017-09-17 20:04:01 UTC Post #337432
Stencylworks is a good program that meets you halfway between lazy and ambitious. It's kinda whatever you want it to be. You could copy and paste tons of bits of other people shared coding and resources, or use drag/drop logic to make your own. It's only 2D but it'll give you a better idea of the more abstract parts of game development that most people never think about when they start. Ya know, the stuff that messes with your head when your knee-deep in bugs or glitches and you have school or work or loved ones gnawing on your sizzling brainmeats.

Good luck!
Rimrook RimrookSince 2003
Posted 7 years ago2017-09-18 04:59:27 UTC Post #337436
I'll try.
Screamernail ScreamernailYour personal Fear
Posted 7 years ago2017-09-22 13:23:50 UTC Post #337465
I must say that i think you people don't know what i can. I know things about variables, statements (If, Else) and i do understand functions too. It might not be perfect knowledge that i have but i have some experience with it. I can translate C++ to the Unity used C language pretty well. I can understand it, i just don't know where to start from.

All i need is a start and then i can get to work again. Should i work with a 2D engine? I can possibly do that.
Screamernail ScreamernailYour personal Fear
Posted 7 years ago2017-09-22 13:33:42 UTC Post #337466
What does this code do:
[quote]
const char* GetEntityName( CBaseEntity* pEntity )
{
char szName[ 512 ];

strcpy( szName, pEntity->m_szName );

return szName;
}

void Foo()
{
CBaseEntity* pEntity;

printf( "Name: %s\n", GetEntityName( pEntity ) );
}
[/quote]

m_szName can be assumed to be a char* here.
Posted 7 years ago2017-09-22 13:56:16 UTC Post #337467
It's two functions.

...

I'll guess that's enough dreams for me. I should be working on my Unity 3DS games rather than this. (I mean i REALLY need to focus on my Unity games more) You people are just twisting my emotions right now.
Screamernail ScreamernailYour personal Fear
Posted 7 years ago2017-09-22 14:17:15 UTC Post #337468
Lemme guess... searches for entity name, returns it and prints it. With a quick glance you can see constants, char variables, member access operators and good old printf.
Posted 7 years ago2017-09-22 14:27:44 UTC Post #337469
I get none of that. Guess it's time to stop because i can never understand it.

Besides i need to make the Unity made games. I won't be making PC games which is good because of the PC Nazism going around the internet.
Screamernail ScreamernailYour personal Fear
Posted 7 years ago2017-09-22 14:28:59 UTC Post #337470
This code causes an access violation due to passing a garbage address into GetEntityName. pEntity isn't initialized to an actual object address.

More information: https://en.wikipedia.org/wiki/Uninitialized_variable

Even if it were, strcpy is unsafe so if the name exceeds 511 characters (or code points if we're talking UTF-8) it'll write past the buffer and over the stack, corrupting memory and possibly causing an access violation.

More information: https://en.wikipedia.org/wiki/Buffer_overflow

Even if the name were short enough, it's returning the address of a local variable, so anything that accesses it will be accessing memory that's been reused. printf will have local variables of its own, so that statement invokes undefined behavior.

More information: https://stackoverflow.com/questions/4643713/c-returning-reference-to-local-variable

If you can't spot these problems making a game engine will be difficult for you, even if you stick to existing safer and easier to use code. Engine development will always have a degree of low level functionality where things like this will pop up.

To take an example from the HL SDK: https://github.com/ValveSoftware/halflife/blob/5d761709a31ce1e71488f2668321de05f791b405/dlls/util.cpp#L404

A naive implementation would just return a pointer to an array of entities of MAX_EDICTS, which would work if it were a static local or a global variable, but then you have issues accessing multiple independent lists.

Passing in a pointer to an array and an array size is one way to handle this properly.

The only way you're going to make a game engine in C++ is if you have years of experience with the language. You'll have to put in the effort to learn it, be familiar with it, spot mistakes like these and others. You can only learn that by using it extensively, and you do that by starting with the basics.

Even if you know them from other languages, you should make sure you fully understand them in the context of C++.
Posted 7 years ago2017-09-22 14:33:44 UTC Post #337471
I have no focus. I didn't even need to read this because i need to quit it for my own good. I can't even make a computer system because i can't even understand words like what you are spewing out.

It's enough now. I need to work on better and easier things.
Screamernail ScreamernailYour personal Fear
Posted 7 years ago2017-09-22 15:17:00 UTC Post #337472
The problem you have is that you keep biting off more than you can chew. We keep telling you to start with the basics, and every time you come back saying you'll start by making an engine, because you know some of the language's syntax.

I didn't get to the point where i can spot vulnerabilities like these until years after i started programming. I started small, failed at what i was doing, learned why i failed and how to do better and succeeded.

Based on your responses here you can't handle failure very well, and your response is to bite off more than you can chew again a few days later.

You really need to start with the basics. Even if that means learning how to write if statements again, it's how you start with learning any programming language.
If you want to make an engine you should start by looking at and using existing engines, preferably in the language that you're intending to make your own with.

Once you have a strong grasp of the syntax of the language and experience with one or more engines you'll have enough knowledge to start making an engine. You'll still fail at first, but you'll be able to learn from your mistakes, instead of just throwing your arms up and saying "i can't even understand words like what you are spewing out".

It'll take time, but if you really want to do this you'll get there eventually. How long it takes depends on how much time you spend on it, as well as how motivated you are and how much you already know.

If you have a problem you just can't fix you can always ask for help, and if it's too stressful you can take a step back and come back later. Giving up at the first sign of trouble won't get you anywhere.
Posted 7 years ago2017-09-22 15:21:08 UTC Post #337473
Yeah, you should stop whining and start learning, @Screamernail.
Posted 7 years ago2017-09-22 15:27:09 UTC Post #337474
I can't learn. I'm just too clueless and lazy.

And with that attitude. I'll rather stay away.
Screamernail ScreamernailYour personal Fear
Posted 7 years ago2017-09-22 15:45:28 UTC Post #337475
I didn't spot those problems at first as well, but then I looked at it only for like three minutes. I'm not an engine coder, so things like these get past my vulnerability checking easily.
@Screamernail

We keep telling you from the beginning - start with beginner tutorials and slowly move on. The thing is not about whinning about being lazy or clueless, or having a bad attitude. It's about just doing it. Start reading about coding and practising, and keep doing it for long time. Only then you'll become coding god like Solokiller.

It's easy to quit early, that's what a lot of people did in the beginning. If you want to make progress, then you have to keep moving, or get back to work after a break.
Posted 7 years ago2017-09-22 15:56:37 UTC Post #337476
No i got to much to do anyway. I need less things to do and C++ coding is WAY too much to work with. I've already started projects that i want to finish but are too lazy to make. I need more time so i'm sacrificing my will to code just to make my simple plans come true.

I'm not asking for too much. I just want to make decent things and make sure i don't get to the high full top and ruin it for everyone.
Screamernail ScreamernailYour personal Fear
Posted 7 years ago2017-09-22 18:01:35 UTC Post #337477
You made his thread and seemed adamant about things. I think you should at least try something to see how it goes, even if it goes incomplete.

Back in the day, I made this and Scotch and Coffee island in unity. Both are rather blah and they were a pain in the ass to even do that much, but it taught me a lot and helped me choose where I wanted to go with my interests.

Don't fret, jump in.
Rimrook RimrookSince 2003
Posted 7 years ago2017-09-22 21:00:51 UTC Post #337480
Since I'm curious of the answer myself, are there any good web resources for C++ tutorials? I think I did some C++ in uni, but I could stand to brush up.
Jessie JessieTrans Rights <3
Posted 7 years ago2017-09-22 21:37:45 UTC Post #337482
Honestly, I only ever looked up documentation for C++, aside from the occasional "this is the good mmethod to do this", or my first "int main( …)". I Just jumped into my first project and started looking at how things were done.

I seem to be doing fine myself, but I did have several hours to spend on end back then. Maybe somewhere there's some good tutorials I probably should've looked at.

I'm kinda interested too if good tutorials exist for C & C++. I only know so much, maybe like a good coding habits and advanced calls for me, I wanna know C++.
Posted 7 years ago2017-09-22 23:07:26 UTC Post #337483
C++ is olde enough to have books at the library for it.
Rimrook RimrookSince 2003
Posted 7 years ago2017-09-23 10:59:37 UTC Post #337489
Well should i resume the work on the Scorch mod then? Then i can program my own characters.

EDIT: It might be a-bit too frustrating for me to do all of it alone. But i guess i must to learn. (I'm someone who works a lot so it might be easier than i think)

EDIT: I've decided to make typing games out of C++. Good right?
Screamernail ScreamernailYour personal Fear
Posted 7 years ago2017-09-24 13:40:34 UTC Post #337510
I decided not to make anything Half-Life related because i'm too lazy to do anything. I'll just be doing stuff and fail on them now.
Screamernail ScreamernailYour personal Fear
Posted 7 years ago2017-09-28 14:07:41 UTC Post #337574
Can't anyone make a little game for me in the console made with C++? I've decided to make small games to learn programming.
Screamernail ScreamernailYour personal Fear
Posted 7 years ago2017-09-28 15:58:08 UTC Post #337575
Holy hell man, you want people to make you stuff too?
Posted 7 years ago2017-09-28 16:36:24 UTC Post #337577
In my area, we have a saying: "Uletio si kao muha bez glave.", which means "You flew in like a fly without its head.". Basically, it's used for people who "jumped" into doing something, but without any prior knowledge and experience.

You're that fly.
And the difficulties of being a noob really discourage you from everything. Laziness is a consequence, in my opinion, even though laziness makes your situation worse.

As we have said, many times, start off with something simple, be consistent, ask questions, and make progress. It's sort of like school. :P
Admer456 Admer456If it ain't broken, don't fox it!
Posted 7 years ago2017-09-28 17:41:59 UTC Post #337578
k

EDIT: Never-mind i won't do it. Might just change my mind about this later on.
Screamernail ScreamernailYour personal Fear
Posted 7 years ago2017-09-28 18:09:25 UTC Post #337580
Make the game yourself. Also, I think that you need someone to constantly guide and teach you. :/
Admer456 Admer456If it ain't broken, don't fox it!
Posted 7 years ago2017-09-28 18:23:40 UTC Post #337581
That's the problem. "constantly" It's forth nothing with working on my Tau Ceti engine if i don't know anything about this.

I need to put my focus on my 3DS games more because it's more important.
Screamernail ScreamernailYour personal Fear
Posted 7 years ago2017-09-29 01:48:32 UTC Post #337583
snip
Which is even more difficult than developing a PC game; take it from a seasoned GBA developer.

Albeit I haven’t released anything in years, I’d consider myself quite knowledgeable in GBA programming; and the 3DS is only a decade after the GBA, things haven’t changed too much at the core.. Look at your goddamn hardware limits for the GBA/3DS, PC beats everything in that regard.

You have to know C and ASM, very well. Incredibly well. I made that mistake when I thought I could do anything and jumped into GBA programming, it took me weeks to display pixels on the screen. People didn’t write documentation on it back then, much less now. (Which reminds me of another project of mine I need to get started on.)

You have to know the hardware and software register values. That is a must.

Also let’s go here, where do you begin? Do you use the raw ARM4 (IIRC) compilers and do everything yourself—your way? Do you use devkitAdv? A blend? How do you setup your Makefile, you have to know the build rules. You also need the MinGW msys for ‘make’.

Know how to structure functions…
How do you compress/decompress LZ data?
What was the register for setting mosaic mode?
What resolution should I run my game at?
Do I use the GCC inline ASM or have seperate files for ASM functions that interface with the GBA itself?
How do you write to files?
Display pixels? Sprites?
Do you do ‘void AgbMain(‘ or ‘int main(‘.
What’s the software interrupt for square roots? Is there even one? How many arguments does the function take? What does it return as? An integer? Maybe an unsigned 8-integer? Maybe even a double? Should you handle square roots yourself instead?

And the official documentation on sheds a sliver of light on these things.

The same can be applied to the 3DS, but it also has built in OpenGL capabilities, how do you start an OpenGL context? Is it already applied for you? How many stencil bits do you have? If any? How many functions does the 3DS OpenGL have?
(Upon further research, I was kinda wrong about this, Citrus has OpenGL-esque functions, which is the most common 3DS library you will use.)

I know I’m coming off as a complete asshole, and I know this is exaggerated, but people keep on telling you to start small and you never listen, look at all the stuff you have to know to even get started.

Do you use headers made by someone else, or define common values and functions yourself? Even know how to setup a V-Blank interrupt?

The list can go on for days, I can rant how fucking stupid some decisions Nintendo made.

But you keep biting off more than you can chew. And you never listen. And I feel it’s a recurring problem; not even with you, this website. I notice it. I’m sure others had too. /rant

Note: multiple edits were applied for extended readability.
Posted 7 years ago2017-09-29 04:28:19 UTC Post #337585
I'm going to use Unity.
Screamernail ScreamernailYour personal Fear
Posted 7 years ago2017-09-29 11:55:50 UTC Post #337588
I'll rather make my own things and work with Unity's scripting methods.
Screamernail ScreamernailYour personal Fear
Posted 7 years ago2017-09-29 13:04:36 UTC Post #337589
;__; It’s like whatever we say can’t help you change your mind, much less settle on something.

And here we go on about C# again.
You must be logged in to post a response.