# doctor insidious's blog

10:38 PM on 11.17.2009

### Designing a game engine, part 1.5 (short blog)

*Note, I am writing this blog in haste because I have a lot of stuff to do I have school tomorrow so please excuse all run-on sentences. That was a joke, but seriously, I didn't have time to really proof this too well.

Well, I think most of the seven of you who remember last blog post recall that I was programming a game engine using the GNU library guile, which basically is a Scheme interpreter for C code. Well, unfortunately guile is not reentrant, meaning it can't handle multiple threads. What are threads? Threading is a concept in which allows multiple processes to be handled at the same time. This is critical for game engines, because a good game engine has to handle both user input and drawing stuff on the screen at the same time. This forced myself to write my own interpreted engine from scratch. I started yesterday, and finished today (aside from missing primitives the most important being "if"), and thought I'd show you guys the result. Note: PLEASE DEAR GOD DON'T MODEL YOUR LANGUAGE AFTER MINE. Not because of copyright or anything, but because you wont have good time trying to use it.
5
This is a number, return that number.
Simple enough, right? Well, it gets more complicated...
*1 4 5
This is a primitive followed by some numbers. This primitive, *1, adds the 2 numbers in front of it. To add multiple numbers, one must do something like:
*1 *1 5 5 5
This returns 15. Other useful primitives include *0: '=', *2: subtract, *3: multiply and *4: divide. One who has taken geometry at one point can compare primitives to postulates.
*0 @1 5
This assigns the '5' to the 1 place in the variable stack. Notice how I don't say the "first place" in the variable stack. That would be 0.
*1 @1 3
This is equal to eight.
[2 *1 6 7]
This defines the procedure '2'. Most of you will probably think: didn't he mean to write "functions"? No, there's a difference in my language. Functions take arguments, procedures do not. You can not pass arguments in my language. There's a reason for this, but it's more like an excuse.
\$2
Calls the procedure 2 and returns 13.
*1 *3 \$2 @1 5
Returns 70
Well, that's pretty much it. I just finished so I thought it would be cool to show you. I remember you all got a kick out of the (x86?) Assembly I showed you, so I thought I'd make the language as annoying as possible to express. Finally, the game engine will be called: The Berry Engine, named after my good friend TheRedPepperofDoom, who's birthday is tomorrow. Happy birthday!   read

5:44 PM on 09.21.2009

### Designing a Game Engine: A quick, condensed guide

Preface: I would say I'm good at programming. Well, no, decent really. I'm only a freshman in high school, you see, but I still am quite good (In my opinion). Well, good enough to want to get better that is. Recently, my quest for becoming a computer scientist has shown me a C library called Guile, a GNU interpreter for programs. I had an idea, and decided to share it with you. By the way, I was going to work on that game I told you all about, but nobody really cared so I had no justification to do so. Any way, lets begin: (Also if you don't want to go through the trouble of actually learning to program, but still want to use this, wait a few months and I'll have made it probably)

What is a game engine?
Most of you are reading this probably because you want to make a video game, and you've been to a few sites and have seen the term "Game Engine" thrown around. Well, what exactly is a game engine, and how do I make it? It's really simple. Wikipedia.com defines a game engine as: A software system designed for the creation and development of video games. That is pretty much it. The beauty of a game engine lies in that when you have one, you don't need to mess around with opengl, frame buffers, and most importantly, pointers. God I hate segfualts. Any way, a good analogy for a game engine is that the game engine is the CPU and the operating system system is the game. The game runs off of the game engine. How do you make one of these things you ask? Well, It requires low-level programming, and the high-level programming. You might be better just purchasing one online ( http://www.garagegames.com, http://www.unity3d.com), however these tend to be REALLY expensive, as they are not focused on indy devs. There are some free ones out there, specifically http://www.blender3d.com, which is both a 3D modeler, but as well a game engine which runs python, one of the easiest programming languages to learn.

I lost you at high/low-level programming. What is that?
High/low-level programming only refers to the amount of abstraction between the programming language used and machine language. That may seem a bit confusing, let me explain: Low-level (C, assembly) programming languages run faster, but the code for something simple (for this example, the Fibonacci sequence) ends up looking like this (assembly program):

fib:
mov edx, [esp+8]
cmp edx, 0
ja @f
mov eax, 0
ret

@@:
cmp edx, 2
ja @f
mov eax, 1
ret

@@:
push ebx
mov ebx, 1
mov ecx, 1

@@:
lea eax, [ebx+ecx]
cmp edx, 3
jbe @f
mov ebx, ecx
mov ecx, eax
dec edx
jmp @b

@@:
pop ebx
ret

It would be pretty much Impossible to write an engine this way. In contrast, Higher-level (python, scheme) programming languages substitute speed for clarity (scheme program):

(define (fib n)
(if (< n 2)
n
(+ (fib (- n 1)) (fib (- n 2)))))

Although you probably don't know what this is either, unless you went to MIT with the intent to get a degree in computer science, or actually have a degree in computer science, but you can tell that its a lot simpler.

The right tool for the right job:
Let me ask you a question: what would be better for writing a game engine with a game, a lower level or higher level language? The answer is neither: you use both: For writing the actual language itself, I would HIGHLY suggest C. It's low level, not completely crazy when it comes to syntax, has good graphics library support, and will help you improve your programming skills in general. For the language the games are written in (and then interpreted by the engine), I would use scheme. There is a great GNU library out there called Guile, as mentioned earlier, that would save you the hassle of writing your own interpreter. Also, scheme is good for learning the basics of recursive and iterative programming, a key part of programming.

Graphics library waaaaahhhh?
A graphics library is what you would use for drawing stuff on the screen, making GUI, and the like. The two main libraries are: openGL and DirectX. While both equally as powerful, openGL is cross platform, however it is lacking in anything besides graphic tools (I think). DirectX, while only available for windows, provides a suite of tools, and in fact, MS Vista's desktop was actually written in direct 3D, the DirectX 3D library, and that is why I use Kubuntu now among other things. Both openGL and DirectX are viable options, but since you probably want you game engine to be cross platform, you probably shouldn't use either. Yes, openGL is cross platform, but I'm pretty sure you need to tweek the code quite a bit. I suggest SDL (Simple DirectMedia Layer), a cross platform library available for: SDL supports Linux, Windows, Windows CE, BeOS, MacOS, Mac OS X, FreeBSD, NetBSD, OpenBSD, BSD/OS, Solaris, IRIX, and QNX. The code contains support for AmigaOS, Dreamcast, Atari, AIX, OSF/Tru64, RISC OS, SymbianOS, and OS/2, but these are not officially supported (taken from www.libsdl.com). It's not an actual graphics library, but instead a tool set that provides easy cross platform compiling and has a large tool set for things such as controller input.

Well, that's all for now young folk, I hope you enjoyed my commentary. By the way; IF YOU STEAL MY IDEA FOR A GAME ENGINE THAT USES GUILE, I'LL HURT PEOPLE. Oh, one last word of advice, when learning to code for Linux, USE EMACS RAAAAAHHHH.

End part one.   read

6:50 PM on 07.22.2009

### Shocking new evidence proves that Gordon Freeman is getting even more rugged (shortblog)

Gordon Freeman is known to be the most sexy, rugged, and smart video game character ever made. from the the glasses to the crowbar, everything about Gordon screams "Ima fuck you up then fuck your mother". However, 5 days after returning to earth, It seems that Gordon Freeman is becoming more rugged by the minute.

1:16 PM on 06.14.2009

### Mr. Destructoid heads being sold as... Toilet paper holders?!

Unfortunately I have no trailer of my video game for you guys today, as I didn't think it would be all that complicated to make. I was wrong. Instead, I offer you a shocking find on the Gizmine site, as it appears to be they're selling Mr. Destructoid head shaped toilet paper holders, dubbed as: Robot Toilet Paper Holder. If your the kind of man that fancies having Mr. Destructoid on the paper in which you wipe your ass with, then you may enjoy this, however it only comes in the colors; black, red, yellow and white, with green apparently being too uncool for their super-snappy awesome site.

11:02 AM on 06.12.2009

### D game Dev blog number: I can't remember

Well, it sure has been a while, hasn't it? Well, despite my apparent absence in the world of Not-fail blogging, I have returned to give you a quick update on the "d" game, with a few announcements. first off:
It's not called D game! Anymore!
No in fact it's called "Warning 10,000" (which is over 9,000, heh heh). The name is a ripoff of the famous indie shooter called "Warning Forever", because I'm not clever enough to come up with one of my own.
But Dr., how does that name relate at all to growing up and puberty? My answer:
It DOESN'T!
That's right! The new game has NOTHING to do with the growing up! As all you astrologists/physicists may have been tipped of, the game is about being a particle in the sun and journeying up to the surface, then lighting up the earth! Oh, one more announcement:
The subtitle is: Let's best the sun!
The reason why will be given in tomorrow's post, along with game play videos and other information. Now I leave you with a screen shot:

7:11 PM on 05.19.2009

### GP2X WIZ Unboxing! Yay!

Well guess what arrived today? It's my GP2X Wiz (that I waited like three months for)! Here is a video I made of unboxing this beauty, I hope you like! I know you guys hate blogs with just a single video in them, so I put a review in here as well. Sorry for the low quality, had a lot of trouble doing this covertly. I'm especially sorry for the grammar mistake in the beginning, I'm not having a "smart" day.
[embed]132718:19429[/embed]
Review:
The Wiz is really great, very well worth your money. All the complaints I have heard of Wiz seem so completely invalid to me; the issues with the dpad is totall BS, the screen tearing issue is unnoticeable, and, um, I can't think of any other known issues. In the video I mention that the touch screen is solid, and wow, does that really help when playing games. The fact that it's open source means that I'm soon going to be able to take my entire collection of sonic games on the road, thanks to a large community ready to make emulator after emulator for it. In fact, I'm considering taking a PS2 emulator, shaving it down until it can only play one specific game at full speed, and dub it as "Katamari Player", so I can take that too on the go.
But I'm rambling now. It's an easy 9/10.

Score: 9 -- Superb (9s are a hallmark of excellence. There may be flaws, but they are negligible and won't cause massive damage to what is a supreme title.)

5:35 PM on 04.17.2009

### Persona 4 wallet:

Here is a wallet I painted on for my friend's birthday (My friend will announce his birthday tomorrow)....

Front is nothing special... but the other side:

Bam! Booyah!

I was going to do the p4 logo on the front but I messed up. Also the inside's a bit messy still...

but I will fix that in a little while. What do you think? I think im going to paint one for him every year!   read

8:09 PM on 04.14.2009

### Short Blog: Sophisticated art humor tuesday. (NVGR)

One day in gym class, I told the eventful story of a man and another man at a hot dog stand in the city (fictional, I made it up). Per request of my friend, here is a comic version (my drawing sucks, I didn't want to get the tablet out). If you don't like it, blame him.
The image is a little big, so I suggest instead (in order to get the full story) clicking Here.
Second order of business, go on to facebook, go to the groups page, and search up eggnostic:
We are willing to accept that eggnog exists, we're just not totally convinced.
until next time... bye.   read

8:43 PM on 04.06.2009

### The Gp2x Wiz vs. The DSi

How many of you are reading this seething with anger just at the thought that somebody could think that the Nintendo DSi wasn't all that great. I mean, sure, all the new additions look pretty cool and well executed,but I continue to get the eerie feeling that Nintendo is moving away from being a video game company and more of a media company. For example, some of the new features include: Cameras (2), Image editing, wireless browser, bigger screen, download shop, music, music editing-thing, share you image, and NO MORE GBA SLOT (sure there downloadable games on the shop, but come on, minus points for being a dousche bag). Not many of those new features are related to games.

So now I introduce to you this: The GP2X Wiz:

Pretty nice, eh? What it is is an open-source hand held game console. some features are: Touch screen, SD card slot (for developers), Really-loud speakers, video, music, ebooks, calender, 3D card... never mind me, here's a list for youself:

Now your thinking: pish, that thing must have so few games, why would I ever want something with so few games??
Few COMMERCIAL games, yes, but the gp2x is not lacking in indie games and emulators, for example, CAVE STORY! YAY! My favorite game! As for emulation, here is a video of the Wiz emulating some games:
[embed]127763:18581[/embed]
(Also let me note that since the SDK is free, games will flow in rather quickly)
So any way, GO PREORDER THIS THING: http://www.gp2xstore.com
The company that makes them is a Korean firm called Game Park Holdings. They will be at E3 for all of you interested.   read

3:17 PM on 03.28.2009

### "d" Game Development Blog Two: Male Character Design Final Draft & A Contest Of Sorts

After A couple of Days of hard labor, I have come up with a final draft of the male character in my game titled "d". If you don't know what I'm talking about, here are two prior blog posts: Dev Blog One, The Game's premise. Done? Good, now here here is the male character in phase one, Keep in mind I'm trying to make the characters as hip as possible so the kids can relate to them:

Pretty hip, huh? Here is the male character in phase two:

very hip indeed. Some time eventually, I will be showing off the game sprites & the female character design.
Contest of sorts: Write a story for "d" in the comments and get featured in the game!
That's right! In the game! Here are the rules:
-Must include 2 characters (male and female),
-The 2 characters need to have sex at one point (build up their relationship)
-The characters must have questions which they go to "The All Knowing Old Man" to answer,
- And you must include this phrase of dialogue to be spoken by an enemy: "MATURE? More like IMmature!

That is all for now. See you in some time eventually!   read

2:29 PM on 03.24.2009

### "d" Game Dev Blog One: Character Design and Mechanics (Not Commercial Video Game Related)

Im sorry to say but this will be a relatively short blog post, as I wanted to get this out as fast as possible. This is the first of many dev blogs relating to the video game I am making titled "d". For more information about the game and its premise, please click HERE. Enlightened? good. Now on to the game.

I wanted the characters to be as hip as possible. You can tell by their T Shirts that they are "Hip". Their shoes are vans, so they are therefor "Hip".
Game Mechanics:
The only way this game can be made, I feel, is as a top-down, Zelda style JRPG. The combat will be Final Fantasy style, but the bush-trimming combat will be Zelda style.

That's it for now. Bye. Please leave any thoughts or suggestions in the comments section.   read

11:54 PM on 03.19.2009

### Expanded Universe: The Transformation of Movie Genres into Games

It recently has accoured to me that there are a lot of movies and television shows based off games, many of
which are good, however, there are not many video games that have been made (Aside from retro capcom
knock offs) that are really good. There is no movie game that subjects the player to a deep thematic question
that was unquestioned in the origional film.

This is a problem

Which is where I come in. This should probably been stated in the title, but this blog is also a dev blog. I could
never make a spin off of a movie, the indie community would hate me (due to this game being one of
complete serousness and not a parody). So instead I am going to make a game based on a genre that only
movies have been able to explore the extreme intellectual, thematic, and questioning of.

Health/Puberty movies

I know you think it can't be done. Maybe you think that the player will not be able to comprehend such varied
emotions the main character goes through, maybe you think the game will not be as nerve racking and
psychologicaly miss-matching condensed into a 30 hour gameplay experience, maybe you have some other
reason, but whatever you think, I assure you I am up to the task. And even if the game does not make it up to
the mega monuments of achievements whish have been built by the films (most notably "Nightmare on
Puperty Street", which even has a theater adaption of the first), isn't it worth exploring? How are we to finally
see the day where children are encouraged regularly to go out and JPG? Friends, members of the vast Dtoid
community, this is our chance!

In the next dev blog I will be exploring the game mechanics of The Game. Please post any ideas you have for
a name in the comments section.   read