Jump to content
IGNORED

2018 Contest Chat


Recommended Posts

I tried to explain the ABS issue here, notice the difference beteen D, #E and #G (and #F which solves it).

http://atariage.com/forums/topic/241431-intybasic-12-problems/?p=3839877

 

OK, I see. The problem is all in your head. :grin: And by that I don't mean that it's your fault or that you made it up, but that it's actually a dissonance between the programmer's mental model versus IntyBASIC's operating model. ;)

 

One of the greatest strengths of IntyBASIC is its tendency to operate at a very low level, very close to the bare metal, and just a slight step above Assembly Language. This is the source of most of its power and speed. It allows for the construction of high-level structures and expressions, without losing itself in expensive abstractions.

 

From a programmer's perspective, I can see that whether a variable is 8-bits or 16-bits is just a technical detail that constraints the range of the value domain. After all, that's how it works in many high level languages.

 

However, IntyBASIC does not see it that way. To it, there is a very specific and obvious distinction between 16-bit and 8-bit values, and it requires some very dedicated handling to each.

 

You see, the CPU has 16-bit registers, so that's the "native" operating word size. All operands are 16-bit by nature because they are operated on using 16-bit registers. Moreover, all arithmetic operations are signed by nature, because the ALU (Arithmetic Logic Unit) of the CPU handles them as signed values.

 

In such an operating model, 8-bit variables are an anomaly. So what to do? The ideal solution would be to treat all 8-bit variables as 16-bit values. This means reading them from memory, "converting" them to 16-bits (via sign extension), and then operating on them normally, being aware of overflow. However, on the Intellivision, that is an expensive solution: it turns out that sign extension is not a native operation of the CPU (it is a 16-bit processor after all, so it doesn't care about 8-bit bytes), so we must implement one in code, which adds a computation cost to all 8-bit expressions.

 

IntyBASIC then took a different position: It declared all 16-bit variables are signed (because they are just born that way); and all 8-bit variables are unsigned -- which means that effectively they are just 16-bit variables where the upper byte is zero, i.e., it contains values from 0 to 255 only. No additional expense incurred for sign extension, no hassle, no fuzz.

 

That works, and it is optimal for speed performance. Unfortunately, it also breaks the programmer's mental model.

 

So Oscar offered then a compromise: if you want larger integers and wish to treat your 16-bit values unsigned, then mark them as such using the "UNSIGNED" directive. This requires additional code and expense, but you asked for it. Likewise, if you want signed 8-bit values just declare them explicitly using the "SIGNED" directive and additional code will be included to extend their sign as necessary. Once again, your program pays the cost of extension, but you asked for it. If you don't use the SIGNED/UNSIGNED operations, it will all work as originally implemented for maximum optimal speed performance.

 

Does this make sense?

 

Personally, I think it's an acceptable compromise. I do not think it's fair to force all programs to extend signs of 8-bit variables just because it would be useful in some cases. Likewise, for treating 16-bit variables as unsigned.

 

Now, whether the available arithmetic functions handle this correctly, that's another matter. In my opinion, all arithmetic functions which support sign, should work equally on all types of input. That means that 8-bit variables should get "promoted" to 16-bit signed values, whether they are signed or not. This is what other programming languages do in similar situations, and it is probably what the programmer is expecting.

 

For instance, if I have an integer and add a floating point value, I expect the integer to be promoted to floating point and the result to be so. Likewise when an unsigned value is an operand on a signed operation.

 

-dZ.

  • Like 1
Link to comment
Share on other sites

And speaking of school...

 

I think we can extend the deadline a week or so since we're still in the summer month. We have people here pulling all nighter hopped up on highly caffeinated drinks or tea trying to finish their contest entries. That's up to the judges.

 

This is feeling a bit like exam time!

 

Ahhh, an extension would've been nice. Not only did I have to deal with issues in Real Life these days, but I even remember from my school days that it was so much harder to focus during the summer months! :P

Link to comment
Share on other sites

  • 4 weeks later...

Everyone still have 4 sheets of calendar: 28, 29, 30 and 31 ;)

 

Down to 2 days now.

 

I do want to say that the 30 day extension was wonderful, and it truly upgraded my game, and I thank the judges immensely for this, and did get to work on my game immediately after the announcement.

 

But, alas, at this point, the 30 days was not enough for me to be satisfied with my entry.

 

I did try, even made concessions with Real Life, but I find myself debating about submitting at this point.

 

It's still a quality and complete game, and friends and family had fun with it, but it still does not complete my vision. There's a few more things that need to be done on it, and I've run out of time.

 

Anyway, if I decide to not submit, I will have something very nice for the near future regardless. And I am appreciative of the extension regardless as it was productive to the development of my game.

 

As well, with or without Humble Me, I do see that this contest was great for the Intellivision community, and I smile. :)

Edited by PuzZLeR
  • Like 3
Link to comment
Share on other sites

Submit it anyway, you can still tweak it later, the more the merrier

 

Hi Steve,

 

I really wasn't ready - this is much more work than I thought! (But very much enjoyed despite the fact that 2018 was one rough year for me.) But you got me to post it. I do believe it has some potential in the future.

 

Thanks for some encouragement. :)

  • Like 1
Link to comment
Share on other sites

We encourage all participants to submit their latest stable version. Don't be afraid of experimental or unpolished features, as long as they work and add to the playing experience. There's always time to work on it after the contest.

 

The idea is to let the judges experience as close to your vision as possible so that they can judge fairly. We can only judge what we see during play-through and there are no extra points for "potential." ;)

 

-dZ.

Link to comment
Share on other sites

It'll be interesting how many entries are submitted without having been presented on the forum. Last time around I counted to 13 entries reviewed by the judges, and this time it looks like 11 entries posted on the forum, so roughly the same number. Thanks to the arrangers for extending the deadline by a month, allowing a few extra late entries as well as improvements to previously announced entries.

Link to comment
Share on other sites

  • 3 weeks later...

It'll be interesting how many entries are submitted without having been presented on the forum. Last time around I counted to 13 entries reviewed by the judges, and this time it looks like 11 entries posted on the forum, so roughly the same number.

I'm guilty of that. I silently cranked out a game and submitted it just before the deadline and never made an announcement.

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...