Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет sadkov ([info]sadkov)
@ 2019-02-05 12:55:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Настроение: amused
Entry tags:gamedev

Leaked Turok Source Code Highlights
Source code discovery announcement:
https://www.youtube.com/watch?v=ONEy_ybKWsg

Source code:
https://archive.org/details/turok-source.7z

The game's review:
https://www.youtube.com/watch?v=74hOR5f4MS0
Turok competed with Quake at the time. And the character models look far better than the ones in Quake. Guess the game can serve as a nice student practice project for porting to modern PC hardware, learning stuff in the process.

ai.c: // it's okay to act stupid if nobody's looking
romstruc.c: // A lot of these letters are from a diagram that I erased off
// my whiteboard ages ago. Oops. Give me a ring and we'll figure it out.
audiomgr.c: // if you don't have one, you're fucked
audio.c: // something has been allocated, stop it and use dummy channel to gather info on dummy channel
map.c: // rotate the fucker so movements on x and z will be not dependant on the direction you're facing
audio.c: // This is a crap sound system!!
onscrn.c: // dampen the acceleration to stop it looking crap
tengine.c:// removed because it looks crap & also screws up the game over
trex.c: // Make TRex avoid center hole in arena
trex.c:* Description: Checks to see if turok has entered a hole in the arena
trex.c:* Also activates crushes if turok is in a hole for too long
trex.c:* Outputs: TRUE if turok is in a hole, else FALSE
trex.c: // If turok is on a brige then he can't be in a hole (which are under bridges!)
trex.c: // In hole?
romstruc.c: // hack to rotate minigun and auto-shotgun's barrels
turret.c: // Turrets can olnmy attack player!


Now somebody needs to leak Mario 64 code, together with all the rude swearing comments in Japanese.



(Добавить комментарий)


(Анонимно)
2019-02-05 12:36 (ссылка)
japanese people don't swear, only russian bydlo do that

(Ответить)


(Анонимно)
2019-02-05 15:02 (ссылка)
ХУЙ!ХУЙ!ХУЙ!ХУЙ!ХУЙ!ХУЙ!ХУЙ!ХУЙ!

(Ответить)


(Анонимно)
2019-02-05 16:52 (ссылка)
Nikita, will you give away (make opensource) your game's code?

(Ответить) (Ветвь дискуссии)


(Анонимно)
2019-02-05 17:01 (ссылка)
У него игра написана на самодельном языке. Поэтому этот код нахуй никому не нужен. Чтобы в нем разобраться нужно будет потратить годы на расшифровку стиля мышления шизоида.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]stereo_sanctity
2019-02-05 17:44 (ссылка)
Смита очень простой и логичный язык, его можно использовать для обучения нубов вместо схемки. Реализация там наверняка тормозная потому что трансляция, но синтаксис ок

(Ответить) (Уровень выше) (Ветвь дискуссии)


(Анонимно)
2019-02-05 18:24 (ссылка)
ты молодец, осталось только выучить название

(Ответить) (Уровень выше)


(Анонимно)
2019-02-05 18:24 (ссылка)
ты молодец, осталось только выучить название

(Ответить) (Уровень выше)


[info]sadkov
2019-02-05 18:46 (ссылка)
The language is far from completion. During development of the game it became obvious, that a lot of change have to be made.

Symta Language Handicaps:
- `get_gui{}.exit` could be more naturally written as just `get_gui.exit`. That is especially useful when we create object just to a call a single method on it. Like `current_folder.list_files`, instead of `current_folder{}.list_files`
- No local macros, which would be available only for a given file.
- _.textify_ is being called on class, instead of unit. Get rid of it, use just as_text instead.
- Absence of proper heap is the greatest handicap.
- `times` macro should have 2 argument form, when there is no need for a count var.
- do-while loop, to avoid needless `_label aga.in`
- A work around for case `$LongAndExpensiveExpression.field` where $LongAndExpensiveExpression can be No or 0, and we still need to provide a dummy with a `field`. Maybe a syntatic sugar like `$LongAndExpensiveExpression.~(Default)field`, would do ass default for a field?
- objects allocated on heap with autopointer cells.
- "when A and B: C" should give warning when `:` is missing.
- `Text.lines{}{...}` is a little confusing and verbose. Consider operator `.{}` for that.
- `parse_int Default Text` points that we need more robust standard library number parsing utilities.
- Better getter and setter syntatic sugar.
- Operators `.><` and `.<>` as shorthands for skip and keep. Parens could be used for internal `<` and `>`: Skip .
- A some file, like common.s, that would be included by default into every other file. Such file would incldue common constants, like TILE_WIDTH.
- Stuff like `Tile.lay <= Tile.lay.tail` really needs some solution.
- Allow to specify name of the output executable file and entry point file, other than main. That way we can produce several executable files in the same dir from the same source code base. I.e. we could have sprite sheet dumper utility without touching the main game exe.
- The foremost handicap is the absence of proper enheap API and allocation syntax.
- `got@@it` leads to potential errors, because when `it` gets removed upstream, downstream references would be treated as literal symbols. It also introduces confusion.
- Don't use abort, because it involves windows debugger, that is pretty annoying.
- No way to quickly introduce an efficient inplace field on a struct, like unit, propagating it to save-file.
- No proper API for manually allocating types in shared memory.

(Ответить) (Уровень выше) (Ветвь дискуссии)


(Анонимно)
2019-02-05 21:16 (ссылка)
Короче говно. Сам признался. Даже scheme-r6rs лучше. А так, чтобы достичь state of the art, потребуются десятилетия человекочасов. В одиночку не реально, а контрибюторы будут только если есть реальная инновационность. А её нихуя нет.

https://www.youtube.com/watch?v=kF_r3GE3zOo <- тем временем в жабу добавляют concurrent low-latency compacting garbage collector.

Ну как с этим можно конкурировать?

А Rust перекрыл nogc-safety тему.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]sadkov
2019-02-05 21:41 (ссылка)
Forgot to ask you what I should use.

(Ответить) (Уровень выше)


(Анонимно)
2019-02-05 17:18 (ссылка)
https://github.com/saniv/spell-of-mastery

(Ответить) (Уровень выше)


[info]sadkov
2019-02-05 18:28 (ссылка)
It is open source, but you won't understand a line of it:
https://github.com/saniv/spell-of-mastery/tree/master/src

(Ответить) (Уровень выше) (Ветвь дискуссии)


(Анонимно)
2019-02-05 19:36 (ссылка)
because it is a shitty game by Russian idiot

(Ответить) (Уровень выше)