Jump to content
  • Advertisement
Sign in to follow this  
  • entries
  • comments
  • views

About this blog

You are in a maze of twisty little passages, all alike.

Entries in this blog



.assembly hello { }
.assembly extern mscorlib { }

.method static void main()
.maxstack 1

ldstr "Hello, World!"
call void [mscorlib]System.Console::Write(string)
call string [mscorlib]System.Console::ReadLine()





Wrestling Season Almost Here

So I started my diet the other day. I have to lose about 2 pounds a week and then drop the last 8 or so pounds a few days before the official weigh-ins. Im dropping from 132 to 112, last year at the weigh-ins I had 2% body fat, im sure ill have 1% this time since ive grown 2 inches and gotten a lot stronger.

Im hopeing to go to place at state this year, but it will be incredibly tough to do that. I could go 125 but I doubt ide even go to state so im dropping to 112.


In programming news, I havnt had any time since im working and school and getting ready for the season. I have had various ideas for projects but only one is small enough for me to actually get some work done in my spare time.

It is a language (of course), that is kind of odd and may not have any purpose at all but I like it and think its pretty interesting.

One thing is, there are no real types. But everything is an "object", but not in the normal sense. Here is a little example:

foo = 5
bar = 10

foo.member = 6
bar.member = 8

foo.member2 = 3

cheese = foo * bar

WHAT, THEY ARNT THE SAME "TYPE" OMG IT SHOULD EXPLODE RIGHT ABOUT NOW! Wrong. Let me explain some things. Each object can have members and methods like usual but also have a root value, such as "foo" and "bar". Since I used the = operator and not the := (explained in just a sec), then it only uses its root value (5 and 10), so cheese would equal 50.

Now what about this := operator? Well it does inheritance AND equal. (: just does inheritance if you dont want to carry over all the values too). If we would changethe = to a := in that example then...
cheese would equal 50 still
cheese.member would equal 48
cheese.member2 would equal NAN or NULL (whichever I decide to use ;) ) since only foo has member2 and bar does not.

I hope you understand all that. There is a problem with that... it would be easy to inherit or inherit and equal something without knowing about a certain member. This means it would be difficult to build complex hierachies.

Though thats a problem, that is a similar problem in almost all OOP languages (change the base class and you wreck everything), this just amplifies it ;).

I find it quite interesting though so I think im going to write an interpreter for it. I'll work on it tomorow and saturday.

Please leave comments on what you think! There are also some more features I like, ill talk about them next time.


PS Ive lost 4 pounds already in 3 days, which mostly is just because of the change of amount of foods in my system, so most of that weight isnt fat/muscle lost.




Wrestling Photos

I found some wrestling pics a photographer was taking at state. Heres a pic of me wrestling :
(im in the red btw)





Its been a while, ive got work, school, and practice so I dont have much time any more unfortunately. Hopefully ill beable to work on my compiler some time but who knows...





Web OS

Besides my serious project (my game, code named Pandora's Gift) I have begun working on 2 other projects. A dynamic programming language that compiles to Python, with emphasis on Design by Contracts and "rules". More details on the language later.

I have also started working on a Web OS. It will be based off of how System 6 works and will use a XML-variant for the programs.

I should have pics of the Web OS tonight after I get off work.




Wanna meet Lask?

Ahoy there!
I have made much successful progress on my new game, Lask.
I know my journal may not be as entertaining as other journals but im really trying to get this one going. So please leave me feed back!

Id love to write up a nice post that goes into what exactly my game is about but does anyone out there even want to know? Please leave me feedback and tell me. :)

If people care, I'll also start posting a day-by-day update of what I did to the game. I know I love reading that stuff, even the small inner working details, so if you would like me to start posting that kind of stuff,

Here is the main character:

See Lask.

See Lask walk.

See Lask run.





Is it just me or has Gamedev been extremely slow today? Ive been doing a lot of coding the past few days but I'll post about it later when Gamedev is working better.

For now, check this out:

1/ Test : sprites
SDL displayed 9 frames
SFML displayed 303 frames
--> SFML is 3366% faster than SDL

2/ Test : alpha-blended sprites
SDL displayed 5 frames
SFML displayed 216 frames
--> SFML is 4320% faster than SDL

3/ Test : rotating sprites
SDL displayed 3 frames
SFML displayed 277 frames
--> SFML is 9233% faster than SDL

4/ Test : static text
SDL displayed 416 frames
SFML displayed 6092 frames
--> SFML is 1464% faster than SDL

5/ Test : dynamic text
SDL displayed 363 frames
SFML displayed 948 frames
--> SFML is 261% faster than SDL




Tunnel Syndrome

My second flash game, Tunnel Syndrome, is out.

This is my first flash game that was done completely done by myself. It seems that the number one factor for making a popular game is POLISH. You can have incredibly simple gameplay that has been done over and over, but as long as it is very polished, it will be popular.

My other flash game, Stay Up, received about a 3.2 out of 5 starting rating. Tunnel Syndrome received a 2.85, this is obviously because of the lack of polish, lack of testing, and bugs. Atleast I learned the lesson of test, test, test, polish, polish, polish.

The law of exponential returns is true.

Tunnel Syndrome




Too Busy

Sorry for the lack of updates. I just started my new job and ive been busy.

When I have some free time (hopefully tomorrow or tuesday) ill post some code and go into detail about what im working on.





class test
method main()
int32 a;

mov a, 50;

ld "Hello";
call System.Console.Write(string);





Tale of Two Wastes-of-Time

Ive been sick and just wanted to work on some stuff that ive been interested in, but never had any real use for.

So I made a program that lets me view files in ascii, bin, hex, decimal, and oct. It also shows all the info and attributes of the file.

Now tonight I plan on whipping something up using the windows desktop sharing API. Im also interested in possibly cleaning up my keylogger, or maybe some kind of program to play with networking, or my favorite idea..my own console! (if only i could find a use for it!)




Still Spring Break

BASIC to C++ Compiler

Input BASIC Code:

LET x = 39 * 2
PRINT "Hello, World!", 50+1, x
IF 5+5 > 123 THEN PRINT "Testing"
INPUT x, a, b

Output C++ Code:

//Begin Intro Segment
using namespace std;
int main()
//End Intro Segment
//Begin Variable Segment
int x = 0; int a = 0; int b = 0;
//End Variable Segment
//Begin Generated Code Segment
x = 39 * 2;
cout "Hello, World!" 50+1 if(5+5 > 123){ cout "Testing";}
cin >> x >> a >> b;
//End Generated Code Segment
return 0;





As you may or may not know, ive always been interested in languages/compilers/interprets so I did my weekly x hour codeathon (this weekend it was 2 hours)...and StackFck2d was born!

Its just like Brainfck but with 6 new commands...here is the complete listing of commands:

> moves the pointer east.
^ moves the pointer north.
v moves the pointer south.
+ increment (increase by one) the value(top of the stack) at the pointer.
- decrement (decrease by one) the value(top of the stack) at the pointer.
. output the value of the byte(top of the stack) at the pointer.
, accept one byte of input, storing its value in the top of the stack at the pointer.
[ jump forward to the command after the corresponding ] if the byte at the pointer is zero.
] jump back to the command after the corresponding [ if the byte at the pointer is nonzero.
@ pushes an empty cell onto the top of the location's stack
# pops the top most cell off of the location's stack
% copies the current location's value and places it into the global variable
& pastes the global variable's value into the current location's value

Now, let me explain the new aspects. Its not 1d like BF, this is 2d. You can move in 4 directions instead of 2. Also, each "cell" is now a stack. When you use + and -, you affect the top of the stack. There are also 2 commands for coping and pasting cells.

I did this in 2 hours so the code is ugly, crammed into 2 functions, and may not work 100%! The loops is the only aspect that may not work perfectly, but from my few tests, they worked. Here is the compiler with source:

I know its not much and doesnt add much greatness to BF, but I wanted a project to mess around with in a short amount of time and learn some things about the STL. Have fun





Spring Break is Almost Over!

BASIC Compiler
I am very pleased with the progress I have made on my BASIC to C++ compiler. It is roughly complete, minus a few useless commands and a few things that were left out of the Tiny BASIC grammar I was basing this on, even though they are in the implementations.

I plan on turning this BASIC compiler into 3 separate projects, what I have so far being the first phase, which is complete. The second phase I plan to revamp a lot of my existing code, add more features, and implement a small amount of error checking/reporting and optimizations. Many of the things going into this phase will be added as I go.

The third phase on the other hand I have planned out in detail. It will be much closer to a modern dialect of BASIC. LET will not be required to modify variables, a symbol table will be needed, variables will have to be declared first, variables will have a type, variables will have a scope, some major changes to the grammar, and a lot more features added.

Hopefully breaking it up into three phases will keep me working since it appears there is less stuff on the todo list. Phases II and III may fade together but thats fine. After im done with this BASIC compiler I should have a understanding of all of the basic concepts of compilers. This way I will be ready for the language I really want to create a compiler for, but at this point it is too far over my head.

Phase II's Deadline: Friday the 20th




Spring Break

Game/Electronic Dev
I have been playing a little bit with my AVR and continued on getting a simple game working with the setup that I already had. The LCD only has two lines so picture it as scrolling. The player is represented as a O and with the press of the button, you move back and forth between the first and second lines on the LCD. You cant move any other way. X's approach you from the other side of the LCD, moving closer and closer to your position but never switch between the lines on the LCD. You lose if an X touches you. Now I just need to add the feature of displaying your score (how long you live) after you get touched. Oh and maybe speeding the X's up after time to make it more difficult! Hah.

Compiler Design
Telastyn and ApochPiQ have been working on their own languages for quite some time now. Telastyn's Tangent language seems to follow the evolution of other languages, adding more and more layers of abstraction with syntactic sugar and more features, which seem very interesting, my favorite being his implementation of phrases!

Apoch on the other hand has been working on his attempt, Epoch, to produce a language that is elegant, simple and gets the job done; with a focus on concurrent programming. So far it has turned out to be: elegant and simple!

I have always played with the concept of compiler design and implementing simple languages. In fact, my first [real] program ever was a parser for a variant of HTML! The high level concepts that Telastyn juggles with are far more than my mind can fathom and the idea of producing a get-the-job-done real world language that Apoch is kickin together is just a dream to me.

But there are some particular concepts of languages and compilers that I think I can handle. In particular, a type system that builds off of Ada's. No implicit casting, AT ALL. No casting an int to a float implicitly. No treating the integer value 1 as a bool. All types are completely different from each other unless specified as a subtype or explicitly casted. Also you will beable to bound a type to a particular range of values.

So I plan to implement this type system along with a few other ideas in a rudimentary language that compiles into C++ code. If I get the base of a language established then I can play with other concepts that I need some experience with, such as implementing complex grammars and optimizations.

It wont match Tangent or Epoch, or even BASIC, but it will be something.. I hope. :)




Smooth Sailing

In the process of trying to clean up the compiler code, I made a few pretty useful classes. The classes dont do much, they are basically for the organization of the compiler.

Class Partition I love this. I use it to organize the output code. For example, I could have one for the header, the variable declarations, the body, and the footer. This is extremely useful and the compiler will probably have the output code broken up into many more partitions than just those 4.

At first I was just using string for the output code. Now I use multiple partitions, which arnt much more than an array of strings themself, and call my Output function to output them all in order.





Ive been working on a compiler and trying to learn about CIL at the same time.
So I worked up a few examples using a simplified version of CIL and have been working on a compiler to take that simplified CIL (lets call it.. SIL? haha) and compile it into CIL.

SIL so far in my design just makes it so that you dont have to set .maxstack, adds a MOV instruction, you use a the same instruction for pushing/popping off the stack no matter what it is, and it slims down on method calling.

Heres an example of SIL and then the equivalent CIL:

int32 a

mov a 50 //now you dont have to push 50 on the stack and then pop it into a

ld "Hello"
call System.Console::Write


.locals init (int32 a)

ldc.i4 50
stloc a

ldstr "Hello"
call void [mscorlib]System.Console::Write(string)


The compiler is very crude and hacked together at the moment but it does do some things. Next thing I want to do is clean up the compiler code and organize it into classes and such.




Side tracked

I first planned on working on the compiler today and maybe dabble with a net meeting like program that lets you view other peoples screens.

It turned out I worked on a key logger and making a class for the keyboard hook. Which I also used so that when I press SHIFT+CTRL+ALT no matter what window is active, my command line pops up.

Ugh, will I ever get anything useful done??

Who knows.




Short Entry

I redid the movement system.
You automatically run and you dont skid.

Other than that, I sat down and tried to design out the game.
I really want to change the game around.
I played the first Megaman game and im leaning towards designing it kinda like that now. Im thinking about giving the main player a sword or maybe you can switch between a gun and sword and use a simple movement system.

So much for unique-ness eh?

More later. Thanks for the feedback everyone.

EDIT: Deja Vu! SneakyRobot's Journal




Seeing Double

Well I didnt get any code done with the game for the contest. Dont know if I can finish it in less than 2 weeks! Bur ill try. Ill add more to this once I get home!

BTW: Did no one let my ray tracing idea (see the post below) because no one commented on it!




Seeing Double

So I saw the Seeing Double contest and im thinking about grabbing SDL and making a game for the contest. I have an OK idea, nothing great, but im gonna try it. Doubt it will win but it will give me the motivation to get something done. It might postpone me working on the engine a bit though

So I told you guys I would let my idea about my raytracing optimization out of the bag so here it is in all its glory...(quite simple):
This would work better if it was an API you could use with like C++ and had a scene graph. You passed it all the objects to be drawn and since it knows where everything is, it only traces rays to THOSE objects and NO where else. No rays going to oblivion and wasting time. Since it knows where the objects are, why not just send rays to them and only them? This may already be done, im not sure. Dont know how well this would work so comment on it please.

Ive got a lot of homework so I doubt I can work on the game much tonight, I might beable to get a little done. Ill probaly post again Friday, maybe tomorow if I get the game to the point where I want to take a pic of it. Within this month I would really like to get a demo of my engine out and start showing some stuff about my real game, so keep your eyes peeled.




Second Post!!!

So this is my second post! Since I probaly wont beable to post a pic of a demo of my engine till this weekend, or get started on rewriting it really, I guess I will post some stuff other than that until then.

Heres some info on a language I wrote a while ago, it takes a lot from C and uses Lisp's Lists. Heres a hello world and list example:

//Hello world:
main =
print ("Hello, World!")

// Example of a list:
exampleOfAList =
list1 = (5,3,'a',"hello")
list2 = (main@, list1, 5) //An example of everything is data..
} //see the main in list2? Thats a function we defined above but everything is data!

Everything is treated as data in this language. Variables, functions, code, are all the same. All functions take 1 parameter, a list. There are also no types and in the interpreter I wrote for this language, I also used a bignum datatype lib I wrote. (if you dont know, bignums are virtual variables that allow for virtually any size, limited by your memory not by the processor's built in sizes).

Let me know if you want to see more about this language or more about my other languages. Tomorow I will probaly post about my raytracing optimization idea that I had, though I havnt implemented it. Doubt I will, I dont know that much about ray tracers but I want to see what you guys think about it.





So the game is no longer based on the myth of Pandora's Box thanks to Raymond over at Ethereal Darkness Interactive. The plot has changed quite a bit but I hope its for the best. I'm going to start on the development of the game within the next few days probaly once I write up a basic outline of the story and get my hands on the engine!




Red Hot Chili Peppers

On a unrelated note, I bought all 9 of the Red Hot Chili Peppers albums last night, each brand new and separate from Amazon. It cost me $115 bucks but I wanted ALL of their work and I wanted it organized and I wanted it on CD so I could have something to listen to in the car. 22 years of goodness! They are the only band I really like so what the hell...



Sign in to follow this  
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!