Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
New programming course
#81
The plan is solid. And I think we should start working on it before someone comes up with a new great idea for a programming course or we get tired of waiting and abandon the idea.
"After three days without programming, life becomes meaningless."
~The Tao of Programming
#82
Another thing, where do we put receive instruction? While I do understand that that instruction might be little confusing for newbies, I can't help but feel that pushing it further in programming course is wasted potential. It is also great example to show why variables are useful, besides "Not gonna waste time writing 8 times 20, so I'll write distance 8 times, hurr", certainly great way to show why variables are called variables, and also to show that instructions can return certain values.
"Deep within all of us lives an idiot, and if you let that idiot dictate your decisions your live is going to be rough."
~ Ryan Letourneau, 2k15
#83
I've got recently an idea for more advance challenges (I know that it's too early, but I could forget about that later).
Think about one robot, that's doing some task, like sorting cells empty->full in a row. Now think about this task executed by 2 bots communicating with themselves. Or three bots. Or four. I'm talking about multi threading, also showing in practice rule Divide and conquer. In challenge we could show how much time does it needs to make it by solo robot and how much faster it might be if it will be divided for 2 bots, also practicing communications between bots, classes and so on.
Of course it's for advanced, but I want to share this idea while I still remember that, also for some discussion.
Spoiler :
[Image: unknown.png]
#84
I'm known for a different approach than anyone else and this time is not an exception.

I'd just like to point out that what is written now feels as if it was stitched out of two game modes. In the original game (and GOLD for the time being) there are two independent game modes: the story and exercises.
Within the story mode, you are introduced to the game, interface, new game elements and mechanics. You are allowed but not forced to use programs either self-made or pre-written.
In the exercises, you are no longer able to control the bots by hand and are presented with a seemingly sterile environment for solving the puzzle, stripped of all intrusive distractions.

I'd love to see that difference between game modes being even expanded upon. Definitely not mushed together.

What @tomangelo written above me seems like an ideal approach for the "challenges" where the player would be presented with a task requiring problem-solving skills and large dose of optimisation. Time of completion could be recorded and could serve for a leaderboard.
In this particular example one could complete the task with just one bot but it would be much smarter decision to divide the workload between multiple bots to cut the time.
My Code Battle League program: MhrodeBattle.txt

Welcome back, Mrocza. You last visited: Sunday, July 7th, 2013, 02:12 pm 
http://imgur.com/L3Y8bQz
#85
@Mrocza what do you suggest then? We can't completely seperate exercises from missions since they use exactly the same game mechanics. We also can't simply assume that the player will have beaten the missions before starting exercises and vice versa.
[Image: XvN5CTW.png] [Image: UYXyyMS.png]
#86
Negative. We cannot assume that.
But we can force that by simply locking the ability to access the exercises until the first few missions are completed.
Even without a restriction like that I don't think there's much to worry about. As a new player in pretty much any game regardless of genre a sane person chooses to play the introduction levels first. Otherwise, they fail miserably and get back to the introduction anyway. It may be even better that way as it's a valuable feat to enable the player to explore the contents of the game freely and not taking away that feeling of discovery.

The story and exercises would be focused on different aspects of the game anyway. You don't want to teach anyone to code in the story and you don't want to teach how to play the game in the exercises.
My Code Battle League program: MhrodeBattle.txt

Welcome back, Mrocza. You last visited: Sunday, July 7th, 2013, 02:12 pm 
http://imgur.com/L3Y8bQz
#87
Ok, that would solve first levels, but what about the next ones? Where should for example production line be explained? In a mission or an exercise? Both? Neither? I'd just force programming in the story, but it's me, some people wouldn't agree with that. My point is, I can't see any good solution regarding this problem other than just treat the player like he's playing the game for the first time in both of them. I'd gladly hear some ideas, if you have any, otherwise I see no choice.
[Image: XvN5CTW.png] [Image: UYXyyMS.png]
#88
Is production line something really so complicated that we need to "explain it"?  

Quote:Write a program that takes a chunk of titanium ore and drops in on the converter in order to produce a titanium cube.

This is how it's described in game, nothing to write home about. This is really how whole game works, take X to Y in order to make Z. Building and factoring bots is showed in 3rd mission of game, in 5th mission (Not counting flight course) you already know how to turn Titanium Ore into robots, then later it's just adding more components, like manufacturing batteries, into equation.
I think we should explain complicated stuff both in missions and exercises alike. But production line? Come on, I figured out C-Bot production line before I could read. I'm certain it doesn't need dedicated explaining
"Deep within all of us lives an idiot, and if you let that idiot dictate your decisions your live is going to be rough."
~ Ryan Letourneau, 2k15
#89
Sure, this is how the game works. But that discussion brought me to another problem which I was thinking about lately.

We want amazing programming course and at the same time we do not allow plot elements in it. Like, even something as simple as an enemy is problematic. What about flying? What about researches? What about buildings and robots appearing later in the game? How are we supposed to write a programming course when we can't use 90% of game mechanics because they are... spoilers?! So programming is an integral part of the game or not?! No? Then why are we wasting time on this thread?!

I say we must finally make a decision about what game we want to make and I know this is controversial, but we can't eat a cookie and have the cookie. If this course is going to be a plain boring addition to the game with no integrity to the plot, I don't see the point of creating it, simply because the player would be better off learning from a book than waste time with a game which is not about programming at all.

I'd integrate programming with the missions and half of the people disagree because they can't and don't want to program, they just want to use arrows to beat the game ("programming game", sure...).

I'd make the programming course an addition to the plot and half of the people disagree.

I'd make the programming course completely unrelated to the game, with boring environments where I can't even use half of the stuff in the game, because it would be a "spoiler" and... people agree.

I'm tired of this project. Everyone wants to make a different game. It doesn't make any sense, it can't work that way, we won't achieve anything that way. You know, I don't want to take part in designing this game any more, it's too hard. I'd like to be just given clear tasks like "write this, fix that". Someone end writing the plan for this course or just simply abandon it. I gave you writing permissions for a reason. I'm too scared of doing all this work and then someone coming in the end saying "we can't do something, because reasons, just leave it naked like it is or forsake it".
[Image: XvN5CTW.png] [Image: UYXyyMS.png]
#90
I've been thinking. Our little project is having some structural problems. And I may have a (definitely controversial) solution.

I suggest we start developing Colobot 2. Colobot: Gold Edition's current state of missions and exercises should remain unchanged since this is how original Colobot was, but the code and data can be still updated as long as we don't change the game too much. Colobot 2 should be our current priority. Large scale refactoring and rewrite. Colobot is already stable enough and our current version system doesn't make sense anymore, so this is a good time to change things. We are changing the game a lot, redefining basics and adding incompatible features, so this is clearly not something we should be doing in our current project, we should be doing this in a new game.

New programming course should become an integral part of Colobot 2 and will be the first thing we develop for it. We don't have any great plans for a story and we probably don't need it right now. Programming course can be independent of what the story will bring, and since it is meant to be a sequel to Colobot, there is no problem with "spoilers". We can add a substory to it, whatever, it can work just fine. And this is something we can (and probably should) concentrate our efforts on without being too strict about what is and what is not "right". Refactoring CBot will definitely fall under this category as well, so there is likely no necessity to remain fully backwards compatible.

Colobot: Gold Edition can evolve in its own pace but I believe it won't be evolving fast enough for all of us to remain in this project for long. So we should make a step forward and begin a new adventure. I'm pretty sure we are ready for it. At least some of us are...
"After three days without programming, life becomes meaningless."
~The Tao of Programming
#91
Well, I agree this is less exciting part of making a game, but we must go through that, otherwise we'll be going multiple times through "write this again, fix that once again" and make everything from scratch after one week, because it didn't met with acceptation.
For me we shouldn't care so much about spoilers, otherwise how would we teach how to fly() if player didn't unlock them in Story mode? Also we shouldn't force them to go through campaign. With these introductions, maybe we could make some "0" levels, that wouldn't be required to unlock first exercise? They would contain some theories, like production line, what is DefenceTower and so on, that will introduce player to these things if he doesn't know them, but if player already knows how to make Titanium cube from ore, then he would just skip it.

edit: Gold with original levels and engine shared with Colobot 2 with completely new plot and exercises? Sounds good imho. What about the assets (models, textures etc)? They'll be shared too?
Spoiler :
[Image: unknown.png]
#92
(04-12-2016, 03:38 PM)Simbax Wrote: I'd integrate programming with the missions and half of the people disagree because they can't and don't want to program, they just want to use arrows to beat the game ("programming game", sure...).
I would love to see the missions better designed for using programming, but remember - this is only a remake, so we cannot change the key aspect of the design which was to make it possible to pass the missions without programming.

(04-12-2016, 03:38 PM)Simbax Wrote: I'd make the programming course an addition to the plot and half of the people disagree.
Who exactly would disagree with that. As far as I'm aware, all people (unofficially, but still) agreed on making the programming course an optional prequel to the main story on the last ColoIRC.

(04-12-2016, 03:38 PM)Simbax Wrote: I'd make the programming course completely unrelated to the game, with boring environments where I can't even use half of the stuff in the game, because it would be a "spoiler" and... people agree.
It's not that we want it to be unrelated to the game. If we are going to improve missions to allow for more programming and design programming course as prequel, it's naturally going to be played before the main missions mode. And as such, it can't contradict with the main plot.
Remember, we are going for complete redesign of the exercises mode, which means we can add whatever new objects and mechanics we want for it to be really helpful in learning programming from strach.
Ideally, what I would like to see is for the main programming course to teach somebody the basic concepts of programming and using documentation without spoiling what you'll discover in missions, and then, whenever a new object in game appears, just link to it's documentation which may include some examples. Actually, a cool idea might be to unlock some additional bonus exercises sent to you via SatCom from Houston, to familiarize you with this new object. Something like the flying and shooting training, except it should be completely optional, just like the whole programming course.

(04-12-2016, 03:38 PM)Simbax Wrote: I'm tired of this project. Everyone wants to make a different game. It doesn't make any sense, it can't work that way, we won't achieve anything that way. You know, I don't want to take part in designing this game any more, it's too hard. I'd like to be just given clear tasks like "write this, fix that". Someone end writing the plan for this course or just simply abandon it. I gave you writing permissions for a reason. I'm too scared of doing all this work and then someone coming in the end saying "we can't do something, because reasons, just leave it naked like it is or forsake it".
I feel like this video clearly demonstrates the problem we have: https://www.youtube.com/watch?v=BKorP55Aqvg Tongue


TWO new posts while I was writing one. Wow.

(04-12-2016, 08:07 PM)tomaszkax86 Wrote: I suggest we start developing Colobot 2. Colobot: Gold Edition's current state of missions and exercises should remain unchanged since this is how original Colobot was, but the code and data can be still updated as long as we don't change the game too much. Colobot 2 should be our current priority. Large scale refactoring and rewrite. Colobot is already stable enough and our current version system doesn't make sense anymore, so this is a good time to change things. We are changing the game a lot, redefining basics and adding incompatible features, so this is clearly not something we should be doing in our current project, we should be doing this in a new game.
One of the initial goals of Gold Edition was to prepare the engine for easier modification and export all game-specific logic to the data repository, so that both Gold and Colobot 2 can mostly share the same engine code. This is the only way to maintain both of them, we do not have enough people and time to manage two separate (and not really designed with maintainability in mind) codebases. That goal is not finished yet, and thus we shouldn't move on to Colobot 2 right now.
#93
I think that issue is more complicated than that. We may not know what we ultimately want to get, but original Colobot devs doesn't seem to know either. Just look at missions: Have you ever tried doing them using only programs? Most players would struggle a great deal at mission 2-4, since that mission is incredibly hard due to low energy levels on both bots. It might be even impossible without "cheating".

Speaking of which, radar stations doesn't affect robot's radars at all. Take example of 2-4: In that mission you are supposed to build a Converter, then Power Station, then Radar Station, then take your Winged Grabber, find Black Box and bring it back to Space Ship. How can you cheat that? Build Power Station, use superior radar(BlackBox) command, and go straight for black box. This is just one of many examples which shows how game wasn't designed with programming in mind.

And back to main point, after 2-4, player who decided to do program-only playthough will meet another obstacle: The Damned 3-3, which is impossible to do for medium to even higher skilled programmers. Those who would be able to do it are probably doing their own games instead.

But at same time, if this game is not about programming, then about what? What is interesting in Colobot on it's own? What would make people stick to this game? I'll let you answer that question.

As for missions and programming course, since C2 was brought up, here is what I was thinking:
Colobot 2 should have 3 campaigns, an easy "Human" campaign, a hard "Machine" campaign, and a mixed one in between, medium difficulty. First campaign, an easy one, is like introduction. It's not designed to be played with only programs. Player do get a lot programs from Huston, to make it easier to deal with simple and repetitive tasks. It is for these who don't want to code (so they can go fk themself) but also to show how programs can be used to make things easier. Then, second campaign is harder to do without programs (many tasks required to be done simultaneously), and player starts with less of them, this is when player needs to come up with his own scripts to beat that campaign. Last campaign, is code-only. For those who are deep into this game. This solves problem with programming course, as it's logically placed between 1st and 2nd campaign, and player can basically solve it parallely to 1st one.

As for topic of C2 itself, before we'd do something, we'd need to talk about C2 design, and you need to talk within Terranova team specifically. We have one shot on making "a second" game, we can't just blow it, otherwise it might end up like original Colobot, or even worse
"Deep within all of us lives an idiot, and if you let that idiot dictate your decisions your live is going to be rough."
~ Ryan Letourneau, 2k15
#94
Well, if we want to discuss about Colobot 2, then we must be sure we'll make it. Otherwise it'll end up with a lot of ideas, while no progress with code, because we won't be sure how to develop Gold Edition.
Spoiler :
[Image: unknown.png]
#95
I'm honestly tired of empty discussions. They lead to nothing. Some people here clearly have no idea how games are made. It isn't as simple as coming up with a plan and sticking to it. No, it is never like this. Most software engineering methods don't work at all. Games are more than just a project. They evolve heavily during development. Ideas change many times before the final form is created. Look at many Steam games released as early access. Some of those games changed drastically over time. Some people stopped playing them, others liked them even more. As for me, I was rewriting my own games many times, changing them when it was necessary. Nothing stopped me from redoing my own work. Sometimes drastic changes are important. And that's pretty much all that can be said about it. Development is not a simple process and we can't let trivial matters stop it. Colobot hasn't been evolving much. What's more, development is halted because of discussions like this one. We have an idea to implement but we are stopped by "spoilers and stuff". We are going nowhere because we are afraid of changes. Seriously, current plan for programming course is great and we should be doing this right now. Of course it will be changing, that's normal. But if we keep talking about things we shouldn't be doing, we'll have done nothing productive in the end. I strongly suggest we reconsider our priorities in this project. We have many ideas we could implement but we're doing absolutely nothing. As for Colobot 2, there is no problem with maintaining two games. No one said we can't use the same code for both games. It is merely a problem of maintaining game assets, which for Colobot 2 would be mostly shared with Colobot. Other stuff, like levels, are what define the game and that is what we should be doing. And there is no "one shot" at making a game. If we keep thinking this way, we'll get nothing. If what we have is bad, we should be making it better, not throw it away or give up.
"After three days without programming, life becomes meaningless."
~The Tao of Programming
#96
Just random thought I recently got: we want to remake original game without drastic changes, while thinking about redesigning missions and exercises, new gameplay mechanics and stuff. Isn't it a bit contradiction? We want to make exercises non-plot related, then thinking if it won't spoil the story mode, also discussing how to explain same things few times, still grabbing original schema.
Maybe we should drop the burden of compatibility and do this programming course non-related with original plot, so we wouldn't care about "does it spoil the plot?", make new, course-compatible story mode and allow yourself to make it however we would want, with blackjack, programming forcing and stuff?
-engine is currently refactored to make it modifiable, so it shouldn't be big problem with handling different assets. There is no reason I think to split it to Gold version and New version, it might be maintained like it was now, in single repository (with compilation flags, if there will be code incompatible between editions).
-data would need to create new repository, with some assets cloned from current state (textures, models, sounds), replacing them in time when it will be needed.
And with the Gold: just polishing existing levels and exercises, maybe some new challenges to make use of new features like build(), try...catch) and make it live by community mods. Possibilities will be still expanded by evolving engine code.

Feel free to hate
Spoiler :
[Image: unknown.png]
#97
Like I said, this project is having some structural problems and starting to contradict itself. Besides, some claim that proposed programming course has spoilers. Doesn't the current one contain spoilers anyway? So what's the difference? I'd say we should still replace the course because the new one is more logical. As for the repo for Colobot 2 assets, this can be simply another branch in existing colobot-data repo.
"After three days without programming, life becomes meaningless."
~The Tao of Programming
#98
I think @tomaszkax86 is right. I mean, even if there will be need to make changes in programming course, how big these changes would be really? We are not going to completely rework CBot anyway in sense of how it will be used. I'd say @Simbax should do as he proposed. In worst case we'll tweak few things here and there, certainly we are not going to scrap entire chapters

Also paging @krzys_h for opinion
"Deep within all of us lives an idiot, and if you let that idiot dictate your decisions your live is going to be rough."
~ Ryan Letourneau, 2k15
#99
(04-13-2016, 06:45 PM)radioactivity Wrote: I'd say @Simbax should do as he proposed.

Which means... what? Not caring about "spoilers" and using every game resource available (at least for now)? Treating the player in exercises like he first time saw the game?
[Image: XvN5CTW.png] [Image: UYXyyMS.png]
@Simbax Long answer:

I mean, if I were you I would avoid major plot spoilers (practically only aliens) until like 3rd chapter, just for the chance that somebody plays missions and course simultaneously, but be all end all even if we decide that there should not be aliens in first chapters, It's mere half hour of fixing.

You probably should mention how some mechanics you will use work, like tell that placing titanium ore in converter will convert ore into titanium. But nothing fancy is required. I think even though player might not know how all things work he will easily catch up. The things player will need in missions are also explained in missions themselves, so I don't think it's needed to have dedicated tutorial for that included into programming course, rather it should come along with new programming stuff player will learn (For example, instead of having mission "Convert Titanium Ore" where you teach player how to use converter, have mission, "Using goto" where you teach player how to use goto, by giving them task of converting titanium ore)

Short answer: Exactly.
"Deep within all of us lives an idiot, and if you let that idiot dictate your decisions your live is going to be rough."
~ Ryan Letourneau, 2k15


Forum Jump:


Users browsing this thread: 15 Guest(s)